this.className = className;
this.superClassName = superClassName;
this.classWriter = new ClassWriter(ClassWriter.COMPUTE_MAXS);
- this.classVisitor = SCLCompilerConfiguration.SHOW_COMPILED_BYTECODE
+ this.classVisitor = SCLCompilerConfiguration.SHOW_COMPILED_BYTECODE
+ && SCLCompilerConfiguration.debugFilter(moduleBuilder.namingPolicy.getModuleName())
? new TraceClassVisitor(classWriter, new PrintWriter(System.out))
: classWriter;
classVisitor.visit(Opcodes.V1_5, access, className, null, superClassName, interfaces);
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);
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);
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);
methodVisitor.visitEnd();
}
- public MethodBuilderBase addConstructor(int access, TypeDesc[] params) {
+ public MethodBuilderBase addConstructorBase(int access, TypeDesc[] params) {
return addMethodBase(access, "<init>", TypeDesc.VOID, params);
}
+
+ public MethodBuilder addConstructor(int access, TypeDesc[] params) {
+ return addMethod(access, "<init>", TypeDesc.VOID, params);
+ }
public MethodBuilder addInitializer() {
return addMethod(Opcodes.ACC_PUBLIC, "<clinit>", TypeDesc.VOID, Constants.EMPTY_TYPEDESC_ARRAY);
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();
}
System.out.println();
}*/
}
+
+ public ModuleBuilder getModuleBuilder() {
+ return moduleBuilder;
+ }
}