Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorM N Palat2013-11-06 15:41:32 +0000
committerM N Palat2013-11-06 15:41:32 +0000
commit2077a29bc8cfe42c01e5c07aa5d0c90e2eceb36b (patch)
tree6c246108e8a3b9eda855e991e80ac8f8cfb1d8f4
parentbd06acbb422b55f9ecb9c9bcd746632c5a7adeef (diff)
downloadeclipse.jdt.core-2077a29bc8cfe42c01e5c07aa5d0c90e2eceb36b.tar.gz
eclipse.jdt.core-2077a29bc8cfe42c01e5c07aa5d0c90e2eceb36b.tar.xz
eclipse.jdt.core-2077a29bc8cfe42c01e5c07aa5d0c90e2eceb36b.zip
Fix for 417659 - [dom][ast][1.8] test failures - ast structure - when
debug tracing is on (fixes a failure)
-rw-r--r--org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/TypeBindingTests308.java2
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTConverter.java13
2 files changed, 9 insertions, 6 deletions
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/TypeBindingTests308.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/TypeBindingTests308.java
index 455a0276a7..538acb97fe 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/TypeBindingTests308.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/TypeBindingTests308.java
@@ -642,7 +642,7 @@ public class TypeBindingTests308 extends ConverterTestSetup {
type = wildcard.getBound();
verifyAnnotationOnType(type, new String[]{"@Marker()"});
}
- public void _test016() throws Exception {
+ public void test016() throws Exception {
String contents =
"public class X<E> {\n" +
" class Y {\n" +
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTConverter.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTConverter.java
index c7261912a7..40a9ba0876 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTConverter.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTConverter.java
@@ -3565,6 +3565,9 @@ class ASTConverter {
if (typeReference.annotations != null && (annotations = typeReference.annotations[0]) != null) {
annotateType(simpleType, annotations);
}
+ int newSourceStart = simpleType.getStartPosition();
+ if (newSourceStart > 0 && newSourceStart < sourceStart)
+ sourceStart = newSourceStart;
final ParameterizedType parameterizedType = new ParameterizedType(this.ast);
parameterizedType.setType(simpleType);
type = parameterizedType;
@@ -3676,9 +3679,9 @@ class ASTConverter {
SimpleType simpleType = new SimpleType(this.ast);
simpleType.setName(name);
- int start = (int)(positions[0] >>> 32);
- int end = (int)positions[firstTypeIndex];
setSourceRangeAnnotationsAndRecordNodes(typeReference, simpleType, positions, typeAnnotations, firstTypeIndex, 0, firstTypeIndex);
+ int start = simpleType.getStartPosition();
+ int end = (int)positions[firstTypeIndex];
Type currentType = simpleType;
int indexOfEnclosingType = 1;
if (typeArguments != null && (arguments = typeArguments[firstTypeIndex]) != null) {
@@ -3711,6 +3714,9 @@ class ASTConverter {
QualifiedType qualifiedType = new QualifiedType(this.ast);
qualifiedType.setQualifier(currentType);
qualifiedType.setName(simpleName);
+ start = currentType.getStartPosition();
+ end = simpleName.getStartPosition() + simpleName.getLength() - 1;
+ qualifiedType.setSourceRange(start, end - start + 1);
if (typeAnnotations != null && (annotations = typeAnnotations[i]) != null) {
annotateType(qualifiedType, annotations);
}
@@ -3718,9 +3724,6 @@ class ASTConverter {
recordNodes(simpleName, typeReference);
recordNodes(qualifiedType, typeReference);
}
- start = currentType.getStartPosition();
- end = simpleName.getStartPosition() + simpleName.getLength() - 1;
- qualifiedType.setSourceRange(start, end - start + 1);
currentType = qualifiedType;
indexOfEnclosingType++;

Back to the top