Bug 376977 - Removing the secondary error that is keeping the quick fix
from appearing.
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTest.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTest.java
index 4b8529a..47ba6f7 100644
--- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTest.java
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTest.java
@@ -11072,4 +11072,38 @@
fail("Error reading classfile");
}
}
+//https://bugs.eclipse.org/bugs/show_bug.cgi?id=376977
+public void test376977() throws Exception {
+ if (this.complianceLevel < ClassFileConstants.JDK1_5) {
+ return;
+ }
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "import p.Outer;\n" +
+ "@Outer(nest= {@Nested()})\n" +
+ "public class X {}",
+ "p/Outer.java",
+ "package p;\n" +
+ "public @interface Outer {\n" +
+ " Nested[] nest();" +
+ "}",
+ "p/Nested.java",
+ "package p;\n" +
+ "public @interface Nested {\n" +
+ "}"
+ },
+ "----------\n" +
+ "1. ERROR in X.java (at line 2)\n" +
+ " @Outer(nest= {@Nested()})\n" +
+ " ^^^^^^\n" +
+ "Nested cannot be resolved to a type\n" +
+ "----------\n",
+ null,
+ true,
+ null,
+ false,
+ false,
+ false);
+}
}
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java
index e37739f..1953db5 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java
@@ -7809,6 +7809,10 @@
expectedType = expectedType.erasure();
}
if (actualType != null && (actualType.tagBits & TagBits.HasMissingType) != 0) { // improve secondary error
+ if (location instanceof Annotation) {
+ // https://bugs.eclipse.org/bugs/show_bug.cgi?id=376977
+ return; // Already reported, don't report a secondary error
+ }
this.handle(
IProblem.UndefinedType,
new String[] {new String(actualType.leafComponentType().readableName())},