public static Type fromVerificationTypeInfo(StackMapTable.VerificationTypeInfo info) throws ResolveException, FormatException {
        switch (info.getKind()) {
            case TOP_VARIABLE_INFO:
                throw new RuntimeException();
            case INTEGER_VARIABLE_INFO:
                return ScalarType.scalar(TypeType.INT);
            case FLOAT_VARIABLE_INFO:
                return ScalarType.scalar(TypeType.FLOAT);
            case LONG_VARIABLE_INFO:
                return ScalarType.scalar(TypeType.LONG);
            case DOUBLE_VARIABLE_INFO:
                return ScalarType.scalar(TypeType.DOUBLE);
            case NULL_VARIABLE_INFO:
                throw new RuntimeException();
            case UNINITIALIZED_THIS_VARIABLE_INFO:
                throw new RuntimeException();
            case OBJECT_VARIABLE_INFO:
                StackMapTable.ObjectVariableInfo refInfo = (StackMapTable.ObjectVariableInfo)info;
                ClassReference classRef = ClassReference.make(refInfo.classRef.resolve());
                return RefType.instanceRef(classRef);
            case UNINITIALIZED_VARIABLE_INFO:
                throw new RuntimeException();
            default:
                throw new RuntimeException();
        }
    }