Skip to content

Commit c190dd5

Browse files
Rob Strykermickaelistria
authored andcommitted
Fixes #1155 - remove all ClassCastException in error log after importing org.eclipse.pde.ui
Signed-off-by: Rob Stryker <[email protected]> Cleanup Signed-off-by: Rob Stryker <[email protected]>
1 parent 58c1193 commit c190dd5

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

org.eclipse.jdt.core.javac/src/org/eclipse/jdt/internal/javac/ProceedOnErrorGen.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,11 @@
1313
import static com.sun.tools.javac.jvm.ByteCodes.athrow;
1414

1515
import com.sun.tools.javac.code.Kinds.Kind;
16+
import com.sun.tools.javac.code.Symbol;
17+
import com.sun.tools.javac.code.Symbol.MethodSymbol;
1618
import com.sun.tools.javac.code.Type.ErrorType;
1719
import com.sun.tools.javac.comp.Attr;
1820
import com.sun.tools.javac.jvm.Gen;
19-
import com.sun.tools.javac.tree.TreeMaker;
2021
import com.sun.tools.javac.tree.JCTree.JCArrayAccess;
2122
import com.sun.tools.javac.tree.JCTree.JCAssign;
2223
import com.sun.tools.javac.tree.JCTree.JCBinary;
@@ -32,6 +33,8 @@
3233
import com.sun.tools.javac.tree.JCTree.JCParens;
3334
import com.sun.tools.javac.tree.JCTree.JCThrow;
3435
import com.sun.tools.javac.tree.JCTree.JCVariableDecl;
36+
import com.sun.tools.javac.tree.TreeInfo;
37+
import com.sun.tools.javac.tree.TreeMaker;
3538
import com.sun.tools.javac.util.Context;
3639
import com.sun.tools.javac.util.List;
3740
import com.sun.tools.javac.util.Names;
@@ -96,6 +99,12 @@ public void visitApply(JCMethodInvocation tree) {
9699
if (tree.type.isErroneous() || tree.args.stream().anyMatch(arg -> arg.type == null || arg.type.isErroneous())) {
97100
visitErroneous(null);
98101
} else {
102+
Symbol meth1 = tree == null ? null : TreeInfo.symbol(tree.meth);
103+
Symbol base = meth1 == null ? null : meth1.baseSymbol();
104+
boolean isMethSym = base instanceof MethodSymbol;
105+
if( !isMethSym ) {
106+
return;
107+
}
99108
super.visitApply(tree);
100109
}
101110
}

org.eclipse.jdt.core.javac/src/org/eclipse/jdt/internal/javac/ProceedOnErrorTransTypes.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@
1616
import com.sun.tools.javac.code.Symbol.MethodSymbol;
1717
import com.sun.tools.javac.comp.TransTypes;
1818
import com.sun.tools.javac.tree.JCTree;
19-
import com.sun.tools.javac.tree.TreeInfo;
2019
import com.sun.tools.javac.tree.JCTree.JCAssign;
2120
import com.sun.tools.javac.tree.JCTree.JCClassDecl;
2221
import com.sun.tools.javac.tree.JCTree.JCMethodInvocation;
2322
import com.sun.tools.javac.tree.JCTree.JCParens;
2423
import com.sun.tools.javac.tree.JCTree.JCTypeCast;
24+
import com.sun.tools.javac.tree.TreeInfo;
2525
import com.sun.tools.javac.util.Context;
2626
import com.sun.tools.javac.util.Context.Factory;
2727

@@ -65,7 +65,6 @@ public void visitApply(JCMethodInvocation tree) {
6565
// XLargeTest.
6666
// Cf https://github.com/eclipse-jdtls/eclipse-jdt-core-incubator/issues/1008
6767

68-
tree.meth = translate(tree.meth, null);
6968
Symbol meth = TreeInfo.symbol(tree.meth);
7069
if (!(meth.baseSymbol() instanceof MethodSymbol)) {
7170
//workaround: guard against ClassCastException when referencing non existing member

0 commit comments

Comments
 (0)