Skip to content

Commit 517b392

Browse files
datho7561mickaelistria
authored andcommitted
Use recovered type for erasure in javac bindings
Should fix at least one test failure. Signed-off-by: David Thompson <[email protected]>
1 parent 4486ccf commit 517b392

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

org.eclipse.jdt.core.javac/src/org/eclipse/jdt/internal/javac/dom/JavacErrorTypeBinding.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
*******************************************************************************/
1111
package org.eclipse.jdt.internal.javac.dom;
1212

13+
import org.eclipse.jdt.core.dom.ITypeBinding;
1314
import org.eclipse.jdt.core.dom.JavacBindingResolver;
1415

1516
import com.sun.tools.javac.code.Symbol.ClassSymbol;
@@ -69,5 +70,10 @@ private String getKeyImpl() {
6970
builder.append(";");
7071
return builder.toString();
7172
}
73+
74+
@Override
75+
public ITypeBinding getErasure() {
76+
return this.resolver.bindings.getTypeBinding(this.types.erasure(this.originatingSymbol.type));
77+
}
7278

7379
}

org.eclipse.jdt.core.javac/src/org/eclipse/jdt/internal/javac/dom/JavacTypeBinding.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,11 @@
5353
import org.eclipse.jdt.core.dom.ITypeBinding;
5454
import org.eclipse.jdt.core.dom.IVariableBinding;
5555
import org.eclipse.jdt.core.dom.JavacBindingResolver;
56+
import org.eclipse.jdt.core.dom.JavacBindingResolver.BindingKeyException;
5657
import org.eclipse.jdt.core.dom.MethodDeclaration;
5758
import org.eclipse.jdt.core.dom.Modifier;
5859
import org.eclipse.jdt.core.dom.RecordDeclaration;
5960
import org.eclipse.jdt.core.dom.TypeDeclaration;
60-
import org.eclipse.jdt.core.dom.JavacBindingResolver.BindingKeyException;
6161
import org.eclipse.jdt.internal.codeassist.KeyUtils;
6262
import org.eclipse.jdt.internal.compiler.codegen.ConstantPool;
6363
import org.eclipse.jdt.internal.core.BinaryType;
@@ -69,13 +69,10 @@
6969
import com.sun.tools.javac.code.Attribute;
7070
import com.sun.tools.javac.code.Flags;
7171
import com.sun.tools.javac.code.Kinds;
72-
import com.sun.tools.javac.code.Symbol;
73-
import com.sun.tools.javac.code.Type;
74-
import com.sun.tools.javac.code.TypeTag;
75-
import com.sun.tools.javac.code.Types;
7672
import com.sun.tools.javac.code.Kinds.Kind;
7773
import com.sun.tools.javac.code.Kinds.KindSelector;
7874
import com.sun.tools.javac.code.Scope.LookupKind;
75+
import com.sun.tools.javac.code.Symbol;
7976
import com.sun.tools.javac.code.Symbol.ClassSymbol;
8077
import com.sun.tools.javac.code.Symbol.CompletionFailure;
8178
import com.sun.tools.javac.code.Symbol.MethodSymbol;
@@ -84,6 +81,7 @@
8481
import com.sun.tools.javac.code.Symbol.TypeSymbol;
8582
import com.sun.tools.javac.code.Symbol.TypeVariableSymbol;
8683
import com.sun.tools.javac.code.Symbol.VarSymbol;
84+
import com.sun.tools.javac.code.Type;
8785
import com.sun.tools.javac.code.Type.ArrayType;
8886
import com.sun.tools.javac.code.Type.ClassType;
8987
import com.sun.tools.javac.code.Type.ErrorType;
@@ -93,6 +91,8 @@
9391
import com.sun.tools.javac.code.Type.MethodType;
9492
import com.sun.tools.javac.code.Type.TypeVar;
9593
import com.sun.tools.javac.code.Type.WildcardType;
94+
import com.sun.tools.javac.code.TypeTag;
95+
import com.sun.tools.javac.code.Types;
9696
import com.sun.tools.javac.code.Types.FunctionDescriptorLookupError;
9797
import com.sun.tools.javac.util.Name;
9898
import com.sun.tools.javac.util.Names;
@@ -103,7 +103,7 @@ public abstract class JavacTypeBinding implements ITypeBinding {
103103

104104
final JavacBindingResolver resolver;
105105
public final TypeSymbol typeSymbol;
106-
private final Types types;
106+
protected final Types types;
107107
private final Names names;
108108
public final Type type;
109109
private final boolean isGeneric; // only relevent for parameterized types

0 commit comments

Comments
 (0)