### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core Index: dom/org/eclipse/jdt/core/dom/DefaultBindingResolver.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/DefaultBindingResolver.java,v retrieving revision 1.156 diff -u -r1.156 DefaultBindingResolver.java --- dom/org/eclipse/jdt/core/dom/DefaultBindingResolver.java 25 Apr 2007 16:59:24 -0000 1.156 +++ dom/org/eclipse/jdt/core/dom/DefaultBindingResolver.java 16 Jul 2007 20:59:29 -0000 @@ -1327,16 +1327,23 @@ ImportReference importReference = (ImportReference) node; Binding binding = this.scope.getTypeOrPackage(CharOperation.subarray(importReference.tokens, 0, importReference.tokens.length)); if ((binding != null) && (binding.isValidBinding())) { - IPackageBinding packageBinding = this.getPackageBinding((org.eclipse.jdt.internal.compiler.lookup.PackageBinding) binding); - if (packageBinding == null) { - return null; + if (binding instanceof ReferenceBinding) { + // this only happens if a type name has the same name as its package + ReferenceBinding referenceBinding = (ReferenceBinding) binding; + binding = referenceBinding.fPackage; } - this.bindingsToAstNodes.put(packageBinding, pkg); - String key = packageBinding.getKey(); - if (key != null) { - this.bindingTables.bindingKeysToBindings.put(key, packageBinding); + if (binding instanceof org.eclipse.jdt.internal.compiler.lookup.PackageBinding) { + IPackageBinding packageBinding = this.getPackageBinding((org.eclipse.jdt.internal.compiler.lookup.PackageBinding) binding); + if (packageBinding == null) { + return null; + } + this.bindingsToAstNodes.put(packageBinding, pkg); + String key = packageBinding.getKey(); + if (key != null) { + this.bindingTables.bindingKeysToBindings.put(key, packageBinding); + } + return packageBinding; } - return packageBinding; } } } catch (AbortCompilation e) {