diff options
| author | M N Palat | 2013-11-06 15:41:32 +0000 |
|---|---|---|
| committer | M N Palat | 2013-11-06 15:41:32 +0000 |
| commit | 2077a29bc8cfe42c01e5c07aa5d0c90e2eceb36b (patch) | |
| tree | 6c246108e8a3b9eda855e991e80ac8f8cfb1d8f4 | |
| parent | bd06acbb422b55f9ecb9c9bcd746632c5a7adeef (diff) | |
| download | eclipse.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.java | 2 | ||||
| -rw-r--r-- | org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTConverter.java | 13 |
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++; |
