Test for Bug 498057 - Incremental compilation phantom errors

Change-Id: I39bf2e4350145160b7393d6c87c8642e5e0c236f
Signed-off-by: Till Brychcy <register.eclipse@brychcy.de>
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 e69874d..51513de 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
@@ -5784,5 +5784,67 @@
 			"}"
 	});
 }
+
+public void testBug498057() {
+	runConformTest(
+		new String[] {
+			"scanner/AbstractScanner.java",
+			"package scanner;\n" +
+			"import scanner.AbstractScanner.ScannerModel;\n" +
+			"public abstract class AbstractScanner<E, M extends ScannerModel<E>> implements Scanner<E> {\n" +
+			"	public void scan(ScanListener<E> listener) {\n" +
+			"	}\n" +
+			"\n" +
+			"	public static interface ScannerModel<E> extends ScanListener<E> {\n" +
+			"	}\n" +
+			"}\n" +
+			"",
+			"scanner/AbstractSubScanner.java",
+			"package scanner;\n" +
+			"import scanner.AbstractScanner.ScannerModel;\n" +
+			"public abstract class AbstractSubScanner<E> extends AbstractScanner<E, ScannerModel<E>> {\n" +
+			"	@Override\n" +
+			"	public void scan(ScanListener<E> listener) {\n" +
+			"	}\n" +
+			"}\n" +
+			"\n" +
+			"",
+			"scanner/ScanListener.java",
+			"package scanner;\n" +
+			"public interface ScanListener<E> {\n" +
+			"}\n" +
+			"\n" +
+			"",
+			"scanner/Scanner.java",
+			"package scanner;\n" +
+			"\n" +
+			"public interface Scanner<E> {\n" +
+			"	void scan(ScanListener<E> listener);\n" +
+			"}\n" +
+			"",
+			"scanner/StringScanner.java",
+			"package scanner;\n" +
+			"\n" +
+			"public interface StringScanner extends Scanner<String> {\n" +
+			"}\n" +
+			"",
+		}
+	);
+	runConformTest(
+		false,
+		new String[] {
+			"scanner/ModifyMe.java",
+			"package scanner;\n" +
+			"\n" +
+			"public class ModifyMe extends AbstractSubScanner<String> implements StringScanner {\n" +
+			"}\n" +
+			"",
+		},
+		"",
+		"",
+		"",
+		null
+	);
+}
 }