diff --git a/src/main/java/de/dhbwstuttgart/bytecode/Codegen.java b/src/main/java/de/dhbwstuttgart/bytecode/Codegen.java index 81e9eacb..d0835561 100644 --- a/src/main/java/de/dhbwstuttgart/bytecode/Codegen.java +++ b/src/main/java/de/dhbwstuttgart/bytecode/Codegen.java @@ -1077,8 +1077,8 @@ public class Codegen { descriptor = TargetMethod.getDescriptor(call.returnType() == null ? null : TargetType.Object, call.parameterTypes().stream().map(x -> TargetType.Object).toArray(TargetType[]::new)); int insn = INVOKEVIRTUAL; - if (call.isInterface()) insn = INVOKEINTERFACE; - else if (call.isStatic()) insn = INVOKESTATIC; + if (call.isStatic()) insn = INVOKESTATIC; + else if (call.isInterface()) insn = INVOKEINTERFACE; else if (call.name().equals("") || call.expr() instanceof TargetSuper || call.isPrivate()) insn = INVOKESPECIAL; mv.visitMethodInsn(insn, call.owner().getInternalName(), call.name(), descriptor, call.isInterface()); diff --git a/src/test/java/TestComplete.java b/src/test/java/TestComplete.java index d76a5566..3269aa22 100644 --- a/src/test/java/TestComplete.java +++ b/src/test/java/TestComplete.java @@ -1034,7 +1034,6 @@ public class TestComplete { } @Test - //@Ignore("This hangs") public void testBug309() throws Exception { var classFiles = generateClassFiles(new ByteArrayClassLoader(), "Bug309.jav"); var clazz = classFiles.get("Bug309");