Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManoj Palat2013-04-26 13:03:16 +0000
committerMarkus Keller2013-04-26 13:03:16 +0000
commitd933dccfeeba25c2c3d8c1c59897e3604969c217 (patch)
tree63e5bc5d9b39f7d4e1be52013ddf914abd4f08d2
parente09cd6d4867d1384b0ccb06566f7838ce3210826 (diff)
downloadeclipse.jdt.core-d933dccfeeba25c2c3d8c1c59897e3604969c217.tar.gz
eclipse.jdt.core-d933dccfeeba25c2c3d8c1c59897e3604969c217.tar.xz
eclipse.jdt.core-d933dccfeeba25c2c3d8c1c59897e3604969c217.zip
Bug 406467: [1.8][dom ast] Wrong type binding for qualifier of QualifiedType and PackageQualifiedType
-rw-r--r--org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverter18Test.java4
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/DefaultBindingResolver.java5
2 files changed, 8 insertions, 1 deletions
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverter18Test.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverter18Test.java
index 0de56ff3b1..ce762bb632 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverter18Test.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverter18Test.java
@@ -2195,7 +2195,9 @@ public class ASTConverter18Test extends ConverterTestSetup {
checkSourceRange(packageQualifiedType, "test404489.bug.@NonNull X", source);
typeBinding = packageQualifiedType.resolveBinding();
assertNotNull("null binding", typeBinding);
- assertEquals("not a valid binding", "test404489.bug.X.Inner", typeBinding.getQualifiedName());
+ assertEquals("not a valid binding", "test404489.bug.X", typeBinding.getQualifiedName());
+ name = packageQualifiedType.getName();
+ assertSame("bindings different for package qualified type and assocated name", typeBinding, name.resolveTypeBinding());
// qualifier of the package qualified type
name = packageQualifiedType.getQualifier();
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/DefaultBindingResolver.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/DefaultBindingResolver.java
index dc2c05fcf1..49f5856f1c 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/DefaultBindingResolver.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/DefaultBindingResolver.java
@@ -1597,6 +1597,11 @@ class DefaultBindingResolver extends BindingResolver {
binding = typeBinding;
}
} else if (node instanceof TypeReference) {
+ if (type instanceof QualifiedType) {
+ return resolveTypeBindingForName(((QualifiedType)type).getName());
+ } else if (type instanceof PackageQualifiedType){
+ return resolveTypeBindingForName(((PackageQualifiedType)type).getName());
+ }
TypeReference typeReference = (TypeReference) node;
binding = typeReference.resolvedType;
} else if (node instanceof SingleNameReference && ((SingleNameReference)node).isTypeReference()) {

Back to the top