Bug 515614 - Bogus error: cannot convert from
X<Generic.NestedInterface[]> to X<Generic.NestedInterface[]>
Change-Id: Ic72cbe379bd618574b235a44bc7c6d3a09bcb280
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/GenericsRegressionTest.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/GenericsRegressionTest.java
index beee136..8b529c0 100644
--- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/GenericsRegressionTest.java
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/GenericsRegressionTest.java
@@ -6061,5 +6061,29 @@
}, null, customOptions, "", "", "", null
);
}
+public void testBug515614() {
+ runConformTest(
+ new String[] {
+ "test/Test.java",
+ "package test;\n" +
+ "\n" +
+ "abstract class Generic<E> {\n" +
+ " interface NestedInterface {\n" +
+ " }\n" +
+ "}\n" +
+ "\n" +
+ "abstract class X<V> {\n" +
+ " public static <W> X<W> create(Class<W> vclass) {\n" +
+ " return vclass == null ? null : null;\n" +
+ " }\n" +
+ "}\n" +
+ "\n" +
+ "public class Test {\n" +
+ " X<Generic.NestedInterface[]> x = X.create(Generic.NestedInterface[].class);\n" +
+ "}\n" +
+ "",
+ }
+ );
+}
}
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/LookupEnvironment.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/LookupEnvironment.java
index 7bc411b..111d785 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/LookupEnvironment.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/LookupEnvironment.java
@@ -537,7 +537,7 @@
needToConvert = false;
break;
}
- forceRawEnclosingType &= !type.isStatic();
+ forceRawEnclosingType &= !originalType.isStatic();
ReferenceBinding originalEnclosing = originalType.enclosingType();
TypeBinding convertedType;
if (originalEnclosing == null) {