Community
Participate
Working Groups
Given these teams: public team class Team139ita7_1 { public abstract class R { abstract void rm(); } } public team class Team139ita7_2 extends Team139ita7_1 { @Override public class R { @Override void rm() { tsuper.rm(); } } } the compiler throws ICE: cannot find real method binding for tsuper call! at org.eclipse.objectteams.otdt.internal.core.compiler.ast.TSuperMessageSend.generateCode(TSuperMessageSend.java:186) at org.eclipse.jdt.internal.compiler.ast.Statement.generateArguments(Statement.java:215) at org.eclipse.jdt.internal.compiler.ast.MessageSend.generateCode(MessageSend.java:321) at org.eclipse.jdt.internal.compiler.ast.Expression.generateCode(Expression.java:775) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.generateCode(AbstractMethodDeclaration.java:470) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.generateCode(AbstractMethodDeclaration.java:371) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.generateCode(TypeDeclaration.java:996)
Created attachment 193444 [details] test & proposed fix The same test as in comment 0 and a fix: detect the situation as an illegal direct call to an abstract method - thus avoiding the call to generateCode on this tsuper call, which is where we bailed out previously.
Patch committed as r1441,2.
Verified for 0.8M7 using build 201104261158