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) {