Program ctorProgram = new Program();
ctor.setProgram(ctorProgram);
BasicBlock ctorBlock = ctorProgram.createBasicBlock();
InvokeInstruction invokeSuper = new InvokeInstruction();
invokeSuper.setInstance(ctorProgram.createVariable());
<BUG>invokeSuper.setMethod(new MethodReference(Object.class, "<init>", void.class));
invokeSuper.setType(InvocationType.SPECIAL);</BUG>
ctorBlock.getInstructions().add(invokeSuper);
for (int i = 0; i < capturedValues.size(); ++i) {
PutFieldInstruction putInsn = new PutFieldInstruction();

Program ctorProgram = new Program();
ctor.setProgram(ctorProgram);
BasicBlock ctorBlock = ctorProgram.createBasicBlock();
InvokeInstruction invokeSuper = new InvokeInstruction();
invokeSuper.setInstance(ctorProgram.createVariable());
invokeSuper.setMethod(new MethodReference(proxyClass.getParent(), "<init>", ValueType.VOID));
invokeSuper.setType(InvocationType.SPECIAL);
ctorBlock.getInstructions().add(invokeSuper);
for (int i = 0; i < capturedValues.size(); ++i) {
PutFieldInstruction putInsn = new PutFieldInstruction();
