<p>-version 3.21
<ul>
-<li>JIRA JASSIST-244
+<li>JIRA JASSIST-244, 248
</ul>
</p>
bytecode.addInvokestatic(declClass, mname, desc);
}
else if (isSpecial) // if (isSpecial && notStatic(acc))
- bytecode.addInvokespecial(declClass, mname, desc);
+ bytecode.addInvokespecial(targetClass, mname, desc);
else {
if (!Modifier.isPublic(declClass.getModifiers())
|| declClass.isInterface() != targetClass.isInterface())
public void testJIRA248() throws Exception {
CtClass cc = sloader.get("test5.JIRA248");
- String methodBody = "public int run() { return foo() + super.foo(); }";
+ String methodBody = "public int run() { return foo() + super.foo() + super.bar(); }";
CtMethod ctMethod = CtMethod.make(methodBody, cc);
cc.addMethod(ctMethod);
cc.writeFile();
Object obj = make(cc.getName());
- assertEquals(71, invoke(obj, "run"));
+ assertEquals(271, invoke(obj, "run"));
}
}
default int foo() { return 1; }
}
-class JIRA248Sup implements JIRA248Intf {
+class JIRA248Sup2 {
+ public int bar() { return 200; }
+}
+
+class JIRA248Sup extends JIRA248Sup2 implements JIRA248Intf {
}
public class JIRA248 extends JIRA248Sup {
public int foo() { return 70; }
+ public int bar() { return 3000; }
}