### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core Index: compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedSingleTypeReference.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedSingleTypeReference.java,v retrieving revision 1.43 diff -u -r1.43 ParameterizedSingleTypeReference.java --- compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedSingleTypeReference.java 22 Feb 2008 09:49:36 -0000 1.43 +++ compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedSingleTypeReference.java 22 Feb 2008 18:05:30 -0000 @@ -97,6 +97,7 @@ switch (this.resolvedType.problemId()) { case ProblemReasons.NotFound : case ProblemReasons.NotVisible : + case ProblemReasons.InheritedNameHidesEnclosingName : TypeBinding type = this.resolvedType.closestMatch(); return type; default : @@ -121,7 +122,14 @@ typeArgument.resolveType((BlockScope) scope, checkBounds); } } - return null; + switch (this.resolvedType.problemId()) { + case ProblemReasons.NotFound : + case ProblemReasons.NotVisible : + case ProblemReasons.InheritedNameHidesEnclosingName : + return this.resolvedType.closestMatch(); + default : + return null; + } } enclosingType = this.resolvedType.enclosingType(); // if member type if (enclosingType != null && (enclosingType.isGenericType() || enclosingType.isParameterizedType())) { Index: compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedQualifiedTypeReference.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedQualifiedTypeReference.java,v retrieving revision 1.47 diff -u -r1.47 ParameterizedQualifiedTypeReference.java --- compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedQualifiedTypeReference.java 22 Feb 2008 09:49:36 -0000 1.47 +++ compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedQualifiedTypeReference.java 22 Feb 2008 18:05:30 -0000 @@ -121,6 +121,7 @@ switch (this.resolvedType.problemId()) { case ProblemReasons.NotFound : case ProblemReasons.NotVisible : + case ProblemReasons.InheritedNameHidesEnclosingName : TypeBinding type = this.resolvedType.closestMatch(); return type; default : #P org.eclipse.jdt.core.tests.compiler Index: src/org/eclipse/jdt/core/tests/compiler/regression/ProblemTypeAndMethodTest.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/ProblemTypeAndMethodTest.java,v retrieving revision 1.4 diff -u -r1.4 ProblemTypeAndMethodTest.java --- src/org/eclipse/jdt/core/tests/compiler/regression/ProblemTypeAndMethodTest.java 22 Feb 2008 09:54:22 -0000 1.4 +++ src/org/eclipse/jdt/core/tests/compiler/regression/ProblemTypeAndMethodTest.java 22 Feb 2008 18:05:33 -0000 @@ -3286,4 +3286,42 @@ "Zork cannot be resolved to a type\n" + "----------\n"); } +//https://bugs.eclipse.org/bugs/show_bug.cgi?id=196200 - variation +public void test073() { + this.runNegativeTest( + new String[] { + "X.java", //----------------------------------------------------------------------- + "public class X {\n" + + " /**\n" + + " * @see Foo.Private#foo()\n" + + " * @param p\n" + + " */\n" + + " void foo(Foo.Private p) {\n" + + " p.foo();\n" + + " }\n" + + "}\n" + + "\n" + + "class Foo {\n" + + " private class Private {\n" + + " private void foo(){}\n" + + " }\n" + + "}\n" + }, + "----------\n" + + "1. ERROR in X.java (at line 6)\n" + + " void foo(Foo.Private p) {\n" + + " ^^^^^^^^^^^\n" + + "The type Foo.Private is not visible\n" + + "----------\n" + + "2. ERROR in X.java (at line 7)\n" + + " p.foo();\n" + + " ^\n" + + "The type Foo.Private is not visible\n" + + "----------\n" + + "3. WARNING in X.java (at line 13)\n" + + " private void foo(){}\n" + + " ^^^^^\n" + + "The method foo() from the type Foo.Private is never used locally\n" + + "----------\n"); +} }