### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core Index: dom/org/eclipse/jdt/core/dom/ASTConverter.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTConverter.java,v retrieving revision 1.252 diff -u -r1.252 ASTConverter.java --- dom/org/eclipse/jdt/core/dom/ASTConverter.java 16 Aug 2007 14:54:25 -0000 1.252 +++ dom/org/eclipse/jdt/core/dom/ASTConverter.java 24 Aug 2007 16:10:22 -0000 @@ -3066,7 +3066,7 @@ } return wildcardType; } - Type type = null; + Type type = null; int sourceStart = -1; int length = 0; int dimensions = typeReference.dimensions(); @@ -3596,7 +3596,8 @@ while(currentNode != null &&!(currentNode instanceof MethodDeclaration) && !(currentNode instanceof Initializer) - && !(currentNode instanceof FieldDeclaration)) { + && !(currentNode instanceof FieldDeclaration) + && !(currentNode instanceof AbstractTypeDeclaration)) { currentNode = currentNode.getParent(); } if (currentNode == null) { @@ -3622,9 +3623,7 @@ while(!(currentNode instanceof AbstractTypeDeclaration)) { currentNode = currentNode.getParent(); } - if (currentNode instanceof TypeDeclaration - || currentNode instanceof EnumDeclaration - || currentNode instanceof AnnotationTypeDeclaration) { + if (currentNode instanceof AbstractTypeDeclaration) { org.eclipse.jdt.internal.compiler.ast.TypeDeclaration typeDecl = (org.eclipse.jdt.internal.compiler.ast.TypeDeclaration) this.ast.getBindingResolver().getCorrespondingNode(currentNode); if ((fieldDeclaration.getModifiers() & Modifier.STATIC) != 0) { return typeDecl.staticInitializerScope; @@ -3632,6 +3631,9 @@ return typeDecl.initializerScope; } } + } else if (currentNode instanceof AbstractTypeDeclaration) { + org.eclipse.jdt.internal.compiler.ast.TypeDeclaration typeDecl = (org.eclipse.jdt.internal.compiler.ast.TypeDeclaration) this.ast.getBindingResolver().getCorrespondingNode(currentNode); + return typeDecl.initializerScope; } AbstractMethodDeclaration abstractMethodDeclaration = (AbstractMethodDeclaration) this.ast.getBindingResolver().getCorrespondingNode(currentNode); return abstractMethodDeclaration.scope;