### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core Index: compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java,v retrieving revision 1.380 diff -u -r1.380 ProblemReporter.java --- compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java 10 Oct 2008 17:24:31 -0000 1.380 +++ compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java 17 Nov 2008 10:00:28 -0000 @@ -4123,6 +4123,7 @@ public void javadocInvalidField(FieldReference fieldRef, Binding fieldBinding, TypeBinding searchedType, int modifiers) { int id = IProblem.JavadocUndefinedField; switch (fieldBinding.problemId()) { + case ProblemReasons.NoError : // may be a local variable case ProblemReasons.NotFound : id = IProblem.JavadocUndefinedField; break; @@ -4132,7 +4133,6 @@ case ProblemReasons.Ambiguous : id = IProblem.JavadocAmbiguousField; break; - case ProblemReasons.NoError : // 0 default : needImplementation(fieldRef); // want to fail to see why we were here... break; #P org.eclipse.jdt.core.tests.compiler Index: src/org/eclipse/jdt/core/tests/compiler/regression/JavadocBugsTest.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/JavadocBugsTest.java,v retrieving revision 1.56 diff -u -r1.56 JavadocBugsTest.java --- src/org/eclipse/jdt/core/tests/compiler/regression/JavadocBugsTest.java 12 Sep 2008 16:38:57 -0000 1.56 +++ src/org/eclipse/jdt/core/tests/compiler/regression/JavadocBugsTest.java 17 Nov 2008 10:00:30 -0000 @@ -8163,4 +8163,48 @@ } ); } + +/** + * @bug 254825: [javadoc] compile error when referencing outer param from inner class javadoc + * @test Ensure that local variable reference does not imply missing compiler implementation error + * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=254825" + */ +public void testBug254825() { + runNegativeTest( + new String[] { + "X.java", + "class X {\n" + + " public Object foo(Object o) { \n" + + " return new Object() {\n" + + " /** @see #o */\n" + + " public void x() {}\n" + + " };\n" + + " }\n" + + "}\n" + }, + "----------\n" + + "1. ERROR in X.java (at line 4)\n" + + " /** @see #o */\n" + + " ^\n" + + "Javadoc: o cannot be resolved or is not a field\n" + + "----------\n" + ); +} +public void testBug254825b() { + runNegativeTest( + new String[] { + "X.java", + "class X {\n" + + " /** @see #o */\n" + + " public Object foo(Object o) {}\n" + + "}\n" + }, + "----------\n" + + "1. ERROR in X.java (at line 2)\n" + + " /** @see #o */\n" + + " ^\n" + + "Javadoc: o cannot be resolved or is not a field\n" + + "----------\n" + ); +} } \ No newline at end of file