X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Finternal%2Fcodegen%2Futils%2FClassBuilder.java;h=0fe185e611df41ae90efad7e394b77119b0328f4;hb=527940f032d9dd8ebd4c7bd202356115f1715120;hp=c3db313ba282a11fc0b70af210b7f9c69220ce9a;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/utils/ClassBuilder.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/utils/ClassBuilder.java index c3db313ba..0fe185e61 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/utils/ClassBuilder.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/utils/ClassBuilder.java @@ -42,6 +42,9 @@ public class ClassBuilder { String methodName, TypeDesc ret, TypeDesc[] params) { + for(TypeDesc param : params) + if(param.equals(TypeDesc.VOID)) + throw new IllegalArgumentException(); MethodVisitor methodVisitor = classVisitor.visitMethod(access, methodName, MethodDesc.forArguments(ret, params).getDescriptor(), null, null); @@ -49,7 +52,7 @@ public class ClassBuilder { return new MethodBuilder(this, moduleBuilder, (access&Opcodes.ACC_STATIC) != 0, methodVisitor, params); } - private MethodVisitor augmentMethodVisitor(String methodName, MethodVisitor methodVisitor) { + private MethodVisitor augmentMethodVisitor(final String methodName, MethodVisitor methodVisitor) { if(SCLCompilerConfiguration.TRACE_MAX_METHOD_SIZE && moduleBuilder != null) { methodVisitor = new CodeSizeEvaluator(methodVisitor) { @Override @@ -68,6 +71,9 @@ public class ClassBuilder { String methodName, TypeDesc ret, TypeDesc[] params) { + for(TypeDesc param : params) + if(param.equals(TypeDesc.VOID)) + throw new IllegalArgumentException(); MethodVisitor methodVisitor = classVisitor.visitMethod(access, methodName, MethodDesc.forArguments(ret, params).getDescriptor(), null, null); @@ -79,6 +85,9 @@ public class ClassBuilder { String methodName, TypeDesc ret, TypeDesc[] params) { + for(TypeDesc param : params) + if(param.equals(TypeDesc.VOID)) + throw new IllegalArgumentException(); MethodVisitor methodVisitor = classVisitor.visitMethod(access, methodName, MethodDesc.forArguments(ret, params).getDescriptor(), null, null); @@ -101,6 +110,8 @@ public class ClassBuilder { public void addField(int access, String fieldName, TypeDesc type) { + if(type.equals(TypeDesc.VOID)) + throw new IllegalArgumentException(); FieldVisitor fieldVisitor = classVisitor.visitField(access, fieldName, type.getDescriptor(), null, null); fieldVisitor.visitEnd(); } @@ -138,4 +149,8 @@ public class ClassBuilder { System.out.println(); }*/ } + + public ModuleBuilder getModuleBuilder() { + return moduleBuilder; + } }