From 31119f627e49564715e6b477fed871c94b8ba8eb Mon Sep 17 00:00:00 2001 From: Sergey Prigogin Date: Fri, 31 Oct 2014 14:09:39 -0700 Subject: [PATCH] Fixed broken tests. --- .../cdt/core/dom/ast/cpp/ICPPNodeFactory.java | 12 ++++++++++++ .../internal/core/dom/parser/cpp/CPPNodeFactory.java | 4 ++-- .../core/dom/parser/cpp/ClassTypeHelper.java | 2 +- .../core/dom/rewrite/DeclarationGeneratorImpl.java | 9 +++++---- .../cdt/internal/formatter/ChangeFormatter.java | 8 +++++--- 5 files changed, 25 insertions(+), 10 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPNodeFactory.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPNodeFactory.java index d37d910d1e5..8553b66df25 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPNodeFactory.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPNodeFactory.java @@ -278,6 +278,18 @@ public interface ICPPNodeFactory extends INodeFactory { @Deprecated public ICPPASTQualifiedName newQualifiedName(); + /** + * @since 5.9 + */ + @Override + public ICPPASTName newName(); + + /** + * @since 5.9 + */ + @Override + public ICPPASTName newName(char[] name); + /** * Creates a range based for statement. * @since 5.3 diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPNodeFactory.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPNodeFactory.java index 2dfc8cd43c8..84b57374c1b 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPNodeFactory.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPNodeFactory.java @@ -499,12 +499,12 @@ public class CPPNodeFactory extends NodeFactory implements ICPPNodeFactory { } @Override - public IASTName newName() { + public ICPPASTName newName() { return new CPPASTName(); } @Override - public IASTName newName(char[] name) { + public ICPPASTName newName(char[] name) { return new CPPASTName(name); } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/ClassTypeHelper.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/ClassTypeHelper.java index c8404e94ba4..4d4faada9fb 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/ClassTypeHelper.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/ClassTypeHelper.java @@ -698,7 +698,7 @@ public class ClassTypeHelper { Deque result= new ArrayDeque<>(); HashSet handled= new HashSet<>(); getSubClasses(index, mcl, result, handled); - result.remove(0); + result.removeFirst(); return result.toArray(new ICPPClassType[result.size()]); } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/DeclarationGeneratorImpl.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/DeclarationGeneratorImpl.java index 584f60451b7..23ac4729fc5 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/DeclarationGeneratorImpl.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/DeclarationGeneratorImpl.java @@ -331,11 +331,12 @@ public class DeclarationGeneratorImpl extends DeclarationGenerator { IASTName name; if (qualifiedNameCharArray.length > 1) { char[] cs = qualifiedNameCharArray[qualifiedNameCharArray.length - 1]; - IASTName segment = factory.newName(cs); - name = ((ICPPNodeFactory) factory).newQualifiedName((ICPPASTName) segment); + ICPPNodeFactory cppFactory = (ICPPNodeFactory) factory; + ICPPASTName segment = cppFactory.newName(cs); + name = cppFactory.newQualifiedName(segment); for (int i = 0; i < qualifiedNameCharArray.length - 1; i++) { - segment = factory.newName(cs); - ((ICPPASTQualifiedName) name).addName(factory.newName(qualifiedNameCharArray[i])); + segment = cppFactory.newName(cs); + ((ICPPASTQualifiedName) name).addNameSpecifier(cppFactory.newName(qualifiedNameCharArray[i])); } } else if (qualifiedNameCharArray.length == 1) { name = factory.newName(qualifiedNameCharArray[0]); diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/ChangeFormatter.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/ChangeFormatter.java index 2134ce52ccb..216db3a6830 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/ChangeFormatter.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/ChangeFormatter.java @@ -72,13 +72,15 @@ public class ChangeFormatter { int newEnd = lineInfo.getOffset(); newEnd = (originalEnd == 0 || code.charAt(originalEnd - 1) == '\n') && end == newEnd ? end : endOffset(lineInfo); - if (newOffset <= prevEnd) { + if (newOffset <= prevEnd && numRegions > 0) { numRegions--; newOffset = regions[numRegions].getOffset(); } prevEnd = newEnd; - regions[numRegions] = new Region(newOffset, newEnd - newOffset); - numRegions++; + if (newEnd != newOffset) { // Don't produce empty regions. + regions[numRegions] = new Region(newOffset, newEnd - newOffset); + numRegions++; + } } if (numRegions == 0)