Skip to content

Commit

Permalink
Fix incorrect use of explicit super type when calling indirect super …
Browse files Browse the repository at this point in the history
…methods.
  • Loading branch information
leibnitz27 committed Jul 18, 2019
1 parent 65a5665 commit d57cc09
Showing 1 changed file with 7 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -339,8 +339,13 @@ private Statement buildInvoke(Method thisCallerMethod) {
boolean superOnInterface = false;
if (isSuper) {
JavaTypeInstance superContainer = function.getClassEntry().getTypeInstance().getDeGenerifiedType();
JavaTypeInstance baseType = thisCallerMethod.getClassFile().getBaseClassType().getDeGenerifiedType();
superOnInterface = !baseType.equals(superContainer);
if (superContainer instanceof JavaRefTypeInstance) {
ClassFile classFile = ((JavaRefTypeInstance) superContainer).getClassFile();
if (classFile != null && classFile.isInterface()) {
JavaTypeInstance baseType = thisCallerMethod.getClassFile().getBaseClassType().getDeGenerifiedType();
superOnInterface = !baseType.equals(superContainer);
}
}
}

JavaTypeInstance bestType = object.getInferredJavaType().getJavaTypeInstance();
Expand Down

0 comments on commit d57cc09

Please sign in to comment.