From 75cbff035e927043ff1116bbd1e33e89ab93b9cb Mon Sep 17 00:00:00 2001 From: Markus Schorn Date: Fri, 29 Sep 2006 07:19:51 +0000 Subject: [PATCH] Separates PDOM from IASTName and IASTTranslationUnit, see bug 149565. --- .../core/parser/tests/ast2/AST2CPPTests.java | 20 +- .../core/parser/tests/ast2/AST2KnRTests.java | 38 +-- .../cdt/core/parser/tests/ast2/AST2Tests.java | 318 +++++++++--------- .../tests/ast2/DOMLocationMacroTests.java | 4 +- .../parser/tests/ast2}/DOMSearchUtil.java | 51 ++- .../tests/ast2/DOMSelectionParseBaseTest.java | 6 +- .../tests/ast2/DOMSelectionParseTest.java | 105 +++--- .../cdt/internal/pdom/tests/ClassTests.java | 8 +- .../internal/pdom/tests/EnumerationTests.java | 14 +- .../cdt/internal/pdom/tests/TypesTests.java | 8 +- .../org.eclipse.cdt.core/META-INF/MANIFEST.MF | 1 + .../cdt/core/browser/PDOMTypeInfo.java | 4 +- .../cdt/core/browser/PDOMTypeReference.java | 6 +- .../org/eclipse/cdt/core/dom/IIndex.java | 35 -- .../eclipse/cdt/core/dom/IIndexReader.java | 20 -- .../eclipse/cdt/core/dom/IIndexWriter.java | 20 -- .../org/eclipse/cdt/core/dom/IName.java | 64 ++++ .../eclipse/cdt/core/dom/IPDOMResolver.java | 6 +- .../cdt/core/dom/ast/IASTFileLocation.java | 12 +- .../eclipse/cdt/core/dom/ast/IASTName.java | 42 +-- .../cdt/core/dom/ast/IASTTranslationUnit.java | 40 ++- .../org/eclipse/cdt/core/dom/ast/IScope.java | 12 +- .../eclipse/cdt/core/index/IIndexName.java | 43 +++ .../core/dom/parser/ProblemBinding.java | 6 +- .../dom/parser/c/CASTTranslationUnit.java | 61 ++-- .../internal/core/dom/parser/c/CScope.java | 6 +- .../dom/parser/cpp/CPPASTTranslationUnit.java | 37 +- .../core/dom/parser/cpp/CPPBlockScope.java | 8 +- .../dom/parser/cpp/CPPClassInstanceScope.java | 6 +- .../core/dom/parser/cpp/CPPClassScope.java | 6 +- .../core/dom/parser/cpp/CPPFunctionScope.java | 4 +- .../dom/parser/cpp/CPPNamespaceScope.java | 7 +- .../core/dom/parser/cpp/CPPTemplateScope.java | 6 +- .../core/dom/parser/cpp/CPPUnknownScope.java | 6 +- .../core/dom/parser/cpp/CPPVisitor.java | 6 +- .../eclipse/cdt/internal/core/pdom/PDOM.java | 25 +- .../cdt/internal/core/pdom/dom/PDOMName.java | 70 +--- .../core/pdom/dom/PDOMTranslationUnit.java | 164 --------- .../core/pdom/dom/c/PDOMCLinkage.java | 3 +- .../core/pdom/dom/cpp/PDOMCPPClassType.java | 7 +- .../core/pdom/dom/cpp/PDOMCPPLinkage.java | 3 +- .../core/pdom/dom/cpp/PDOMCPPNamespace.java | 4 +- .../editor/AddIncludeOnSelectionAction.java | 59 ++-- .../internal/ui/missingapi/CIndexQueries.java | 23 +- .../ui/missingapi/CIndexReference.java | 4 +- .../actions/OpenDeclarationsAction.java | 28 +- .../search/actions/OpenDefinitionAction.java | 3 +- .../search/actions/SelectionParseAction.java | 4 +- 48 files changed, 637 insertions(+), 796 deletions(-) rename core/{org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom => org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2}/DOMSearchUtil.java (87%) delete mode 100644 core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IIndex.java delete mode 100644 core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IIndexReader.java delete mode 100644 core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IIndexWriter.java create mode 100644 core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IName.java create mode 100644 core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/index/IIndexName.java delete mode 100644 core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/PDOMTranslationUnit.java diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java index 221a3f5fec6..98ccded637e 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java @@ -2496,15 +2496,15 @@ public class AST2CPPTests extends AST2BaseTest { assertEquals(s[0], "RED"); //$NON-NLS-1$ assertTrue(((ICPPBinding) RED).isGloballyQualified()); - IASTName[] decls = tu.getDeclarations(enum_x); + IASTName[] decls = tu.getDeclarationsInAST(enum_x); assertEquals(decls.length, 1); assertSame(decls[0], col.getName(3)); - decls = tu.getDeclarations(x_ref); + decls = tu.getDeclarationsInAST(x_ref); assertEquals(decls.length, 1); assertSame(decls[0], col.getName(1)); - decls = tu.getDeclarations(RED); + decls = tu.getDeclarationsInAST(RED); assertEquals(decls.length, 1); assertSame(decls[0], col.getName(6)); } @@ -2592,7 +2592,7 @@ public class AST2CPPTests extends AST2BaseTest { ICPPFunction f2 = (ICPPFunction) col.getName(5).resolveBinding(); assertSame(f1, f2); - IASTName[] decls = tu.getDeclarations(f2); + IASTName[] decls = tu.getDeclarationsInAST(f2); assertEquals(decls.length, 2); assertSame(decls[0], col.getName(2)); assertSame(decls[1], col.getName(5)); @@ -2671,7 +2671,7 @@ public class AST2CPPTests extends AST2BaseTest { assertSame(refs[0], col.getName(2)); assertSame(refs[1], col.getName(4)); - IASTName[] decls = tu.getDeclarations(ns); + IASTName[] decls = tu.getDeclarationsInAST(ns); assertEquals(decls.length, 1); assertSame(decls[0], col.getName(0)); @@ -2679,7 +2679,7 @@ public class AST2CPPTests extends AST2BaseTest { assertEquals(refs.length, 1); assertSame(refs[0], col.getName(6)); - decls = tu.getDeclarations(alias); + decls = tu.getDeclarationsInAST(alias); assertEquals(decls.length, 3); assertSame(decls[0], col.getName(1)); assertSame(decls[1], col.getName(3)); @@ -2701,7 +2701,7 @@ public class AST2CPPTests extends AST2BaseTest { ICPPUsingDeclaration u = (ICPPUsingDeclaration) col.getName(7) .resolveBinding(); - IASTName[] decls = tu.getDeclarations(u); + IASTName[] decls = tu.getDeclarationsInAST(u); assertEquals(decls.length, 2); assertSame(decls[0], col.getName(1)); assertSame(decls[1], col.getName(3)); @@ -2709,11 +2709,11 @@ public class AST2CPPTests extends AST2BaseTest { ICPPDelegate[] delegates = u.getDelegates(); assertEquals(delegates.length, 2); - decls = tu.getDeclarations(delegates[0]); + decls = tu.getDeclarationsInAST(delegates[0]); assertEquals(decls.length, 1); assertSame(decls[0], col.getName(7)); - decls = tu.getDeclarations(delegates[0].getBinding()); + decls = tu.getDeclarationsInAST(delegates[0].getBinding()); assertEquals(decls.length, 1); assertSame(decls[0], col.getName(1)); } @@ -2776,7 +2776,7 @@ public class AST2CPPTests extends AST2BaseTest { ICPPUsingDeclaration comp = (ICPPUsingDeclaration) col.getName(7) .resolveBinding(); - IASTName[] decls = tu.getDeclarations(comp); + IASTName[] decls = tu.getDeclarationsInAST(comp); assertEquals(decls.length, 2); assertSame(decls[0], col.getName(1)); assertSame(decls[1], col.getName(2)); diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2KnRTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2KnRTests.java index b25a0e65400..620c05fec8b 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2KnRTests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2KnRTests.java @@ -80,8 +80,8 @@ public class AST2KnRTests extends AST2BaseTest { assertEquals( x2, x3 ); assertEquals( x3, x4 ); - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(x1); + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(x1); assertEquals( decls.length, 2 ); assertEquals( decls[0], ((IASTStandardFunctionDeclarator)f1.getDeclarators()[0]).getParameters()[0].getDeclarator().getName() ); assertEquals( decls[1], ((IASTSimpleDeclaration)((ICASTKnRFunctionDeclarator)f2.getDeclarator()).getParameterDeclarations()[0]).getDeclarators()[0].getName() ); @@ -116,8 +116,8 @@ public class AST2KnRTests extends AST2BaseTest { assertEquals( x2, x3 ); assertEquals( x3, x4 ); - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(x2); + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(x2); assertEquals( decls.length, 1 ); assertEquals( decls[0], ((IASTSimpleDeclaration)((ICASTKnRFunctionDeclarator)f2.getDeclarator()).getParameterDeclarations()[0]).getDeclarators()[0].getName() ); @@ -188,8 +188,8 @@ public class AST2KnRTests extends AST2BaseTest { assertEquals( y_parm, y_parm2 ); assertEquals( ret_x.resolveBinding(), x_parm ); - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(ret_x.resolveBinding()); + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(ret_x.resolveBinding()); assertEquals( decls.length, 1 ); assertEquals( decls[0], x1.getName() ); @@ -247,8 +247,8 @@ public class AST2KnRTests extends AST2BaseTest { assertTrue(c1_t.getType() instanceof IBasicType); assertEquals(((IBasicType)c1_t.getType()).getType(), IBasicType.t_char); - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(x3.resolveBinding()); + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(x3.resolveBinding()); assertEquals( decls.length, 1 ); assertEquals( decls[0], x2 ); @@ -301,8 +301,8 @@ public class AST2KnRTests extends AST2BaseTest { assertTrue(((IASTBinaryExpression)((IASTReturnStatement)((IASTCompoundStatement)f.getBody()).getStatements()[0]).getReturnValue()).getOperand2() instanceof IASTLiteralExpression); assertEquals(((IASTLiteralExpression)((IASTBinaryExpression)((IASTReturnStatement)((IASTCompoundStatement)f.getBody()).getStatements()[0]).getReturnValue()).getOperand2()).toString(), "0"); //$NON-NLS-1$ - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(((IASTIdExpression)((IASTBinaryExpression)((IASTReturnStatement)((IASTCompoundStatement)f.getBody()).getStatements()[0]).getReturnValue()).getOperand1()).getName().resolveBinding()); + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(((IASTIdExpression)((IASTBinaryExpression)((IASTReturnStatement)((IASTCompoundStatement)f.getBody()).getStatements()[0]).getReturnValue()).getOperand1()).getName().resolveBinding()); assertEquals( decls.length, 0 ); } @@ -349,8 +349,8 @@ public class AST2KnRTests extends AST2BaseTest { assertEquals(y1_parm, y2_parm); assertEquals(z1_parm, z2_parm); - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(((IASTIdExpression)((IASTBinaryExpression)((IASTReturnStatement)((IASTCompoundStatement)f.getBody()).getStatements()[0]).getReturnValue()).getOperand1()).getName().resolveBinding()); + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(((IASTIdExpression)((IASTBinaryExpression)((IASTReturnStatement)((IASTCompoundStatement)f.getBody()).getStatements()[0]).getReturnValue()).getOperand1()).getName().resolveBinding()); assertEquals( decls.length, 1 ); assertEquals( decls[0], x2 ); @@ -376,8 +376,8 @@ public class AST2KnRTests extends AST2BaseTest { assertTrue(((IASTBinaryExpression)((IASTReturnStatement)((IASTCompoundStatement)f.getBody()).getStatements()[0]).getReturnValue()).getOperand2() instanceof IASTLiteralExpression); assertEquals(((IASTLiteralExpression)((IASTBinaryExpression)((IASTReturnStatement)((IASTCompoundStatement)f.getBody()).getStatements()[0]).getReturnValue()).getOperand2()).toString(), "0"); //$NON-NLS-1$ - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(((IASTIdExpression)((IASTBinaryExpression)((IASTReturnStatement)((IASTCompoundStatement)f.getBody()).getStatements()[0]).getReturnValue()).getOperand1()).getName().resolveBinding()); + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(((IASTIdExpression)((IASTBinaryExpression)((IASTReturnStatement)((IASTCompoundStatement)f.getBody()).getStatements()[0]).getReturnValue()).getOperand1()).getName().resolveBinding()); assertEquals( decls.length, 0 ); } @@ -496,8 +496,8 @@ public class AST2KnRTests extends AST2BaseTest { IParameter[] f1_parms = f_fun1.getParameters(); assertEquals( f1_parms.length, 1 ); - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(x2.resolveBinding()); + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(x2.resolveBinding()); assertEquals( decls.length, 1 ); assertEquals( decls[0], x2 ); @@ -544,12 +544,12 @@ public class AST2KnRTests extends AST2BaseTest { assertNull( list.getArrayModifiers()[0].getConstantExpression() ); assertEquals( list.getPointerOperators().length, 1 ); - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(list3.resolveBinding()); + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(list3.resolveBinding()); assertEquals( decls.length, 1 ); assertEquals( decls[0], list2 ); - decls = tu.getDeclarations(prompt1.resolveBinding()); + decls = tu.getDeclarationsInAST(prompt1.resolveBinding()); assertEquals( decls.length, 1 ); assertEquals( decls[0], prompt2 ); } diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java index bfdbdd78d85..6c2f52cb212 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java @@ -228,28 +228,28 @@ public class AST2Tests extends AST2BaseTest { assertEquals(var_x, name_ref_x.resolveBinding()); assertEquals(var_y, name_ref_y.resolveBinding()); - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(name_x.resolveBinding()); + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(name_x.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_x); - decls = tu.getDeclarations(name_f.resolveBinding()); + decls = tu.getDeclarationsInAST(name_f.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_f); - decls = tu.getDeclarations(name_y.resolveBinding()); + decls = tu.getDeclarationsInAST(name_y.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_y); - decls = tu.getDeclarations(name_z.resolveBinding()); + decls = tu.getDeclarationsInAST(name_z.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_z); - decls = tu.getDeclarations(name_ref_x.resolveBinding()); + decls = tu.getDeclarationsInAST(name_ref_x.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_x); - decls = tu.getDeclarations(name_ref_y.resolveBinding()); + decls = tu.getDeclarationsInAST(name_ref_y.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_y); @@ -375,33 +375,33 @@ public class AST2Tests extends AST2BaseTest { IField field_x = (IField) name_x.resolveBinding(); assertEquals(field_x, fieldref.getFieldName().resolveBinding()); - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(name_struct.resolveBinding()); + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(name_struct.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_struct); - decls = tu.getDeclarations(name_x.resolveBinding()); + decls = tu.getDeclarationsInAST(name_x.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_x); - decls = tu.getDeclarations(def_f.getDeclarator().getName() + decls = tu.getDeclarationsInAST(def_f.getDeclarator().getName() .resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], def_f.getDeclarator().getName()); - decls = tu.getDeclarations(name_S.resolveBinding()); + decls = tu.getDeclarationsInAST(name_S.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_S); - decls = tu.getDeclarations(name_myS.resolveBinding()); + decls = tu.getDeclarationsInAST(name_myS.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_myS); - decls = tu.getDeclarations(ref_myS.getName().resolveBinding()); + decls = tu.getDeclarationsInAST(ref_myS.getName().resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_myS); - decls = tu.getDeclarations(fieldref.getFieldName().resolveBinding()); + decls = tu.getDeclarationsInAST(fieldref.getFieldName().resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_x); } @@ -491,12 +491,12 @@ public class AST2Tests extends AST2BaseTest { assertEquals(name1.resolveBinding().getName(), "r"); //$NON-NLS-1$ assertEquals(name2.resolveBinding().getName(), "s"); //$NON-NLS-1$ - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(name1.resolveBinding()); + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(name1.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name1); - decls = tu.getDeclarations(name2.resolveBinding()); + decls = tu.getDeclarationsInAST(name2.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name2); } @@ -562,25 +562,25 @@ public class AST2Tests extends AST2BaseTest { assertSame(str2, str3); assertSame(str3, str4); - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(nameA1.resolveBinding()); + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(nameA1.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], nameA1); - decls = tu.getDeclarations(fndef.getDeclarator().getName() + decls = tu.getDeclarationsInAST(fndef.getDeclarator().getName() .resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], fndef.getDeclarator().getName()); - decls = tu.getDeclarations(nameA2.resolveBinding()); + decls = tu.getDeclarationsInAST(nameA2.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], nameA2); - decls = tu.getDeclarations(nameA3.resolveBinding()); + decls = tu.getDeclarationsInAST(nameA3.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], nameA2); - decls = tu.getDeclarations(namea.resolveBinding()); + decls = tu.getDeclarationsInAST(namea.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], namea); } @@ -631,21 +631,21 @@ public class AST2Tests extends AST2BaseTest { assertSame(str1, str2); assertSame(str2, str3); - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(nameA1.resolveBinding()); + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(nameA1.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], nameA1); - decls = tu.getDeclarations(fndef.getDeclarator().getName() + decls = tu.getDeclarationsInAST(fndef.getDeclarator().getName() .resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], fndef.getDeclarator().getName()); - decls = tu.getDeclarations(nameA2.resolveBinding()); + decls = tu.getDeclarationsInAST(nameA2.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], nameA1); - decls = tu.getDeclarations(namea.resolveBinding()); + decls = tu.getDeclarationsInAST(namea.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], namea); } @@ -726,40 +726,40 @@ public class AST2Tests extends AST2BaseTest { assertSame(structA_2, structA_3); assertSame(structA_3, structA_4); - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(name_A1.resolveBinding()); + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(name_A1.resolveBinding()); assertEquals(decls.length, 2); assertEquals(decls[0], name_A1); assertEquals(decls[1], name_Adef); - decls = tu.getDeclarations(name_A2.resolveBinding()); + decls = tu.getDeclarationsInAST(name_A2.resolveBinding()); assertEquals(decls.length, 2); assertEquals(decls[0], name_A1); assertEquals(decls[1], name_Adef); - decls = tu.getDeclarations(name_a.resolveBinding()); + decls = tu.getDeclarationsInAST(name_a.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_a); - decls = tu.getDeclarations(name_Adef.resolveBinding()); + decls = tu.getDeclarationsInAST(name_Adef.resolveBinding()); assertEquals(decls.length, 2); assertEquals(decls[0], name_A1); assertEquals(decls[1], name_Adef); - decls = tu.getDeclarations(name_i.resolveBinding()); + decls = tu.getDeclarationsInAST(name_i.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_i); - decls = tu.getDeclarations(fndef.getDeclarator().getName() + decls = tu.getDeclarationsInAST(fndef.getDeclarator().getName() .resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], fndef.getDeclarator().getName()); - decls = tu.getDeclarations(name_aref.resolveBinding()); + decls = tu.getDeclarationsInAST(name_aref.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_a); - decls = tu.getDeclarations(name_iref.resolveBinding()); + decls = tu.getDeclarationsInAST(name_iref.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_i); } @@ -807,25 +807,25 @@ public class AST2Tests extends AST2BaseTest { IASTDeclarator decl_i = declaration2.getDeclarators()[0]; decl_i.getName().resolveBinding(); // add i's binding to the scope - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(x_1.resolveBinding()); + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(x_1.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], x_1); - decls = tu.getDeclarations(fdef.getDeclarator().getName() + decls = tu.getDeclarationsInAST(fdef.getDeclarator().getName() .resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], fdef.getDeclarator().getName()); - decls = tu.getDeclarations(x_2.resolveBinding()); + decls = tu.getDeclarationsInAST(x_2.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], x_2); - decls = tu.getDeclarations(x_3.resolveBinding()); + decls = tu.getDeclarationsInAST(x_3.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], x_1); - decls = tu.getDeclarations(declaration2.getDeclarators()[0].getName() + decls = tu.getDeclarationsInAST(declaration2.getDeclarators()[0].getName() .resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], declaration2.getDeclarators()[0].getName()); @@ -922,23 +922,23 @@ public class AST2Tests extends AST2BaseTest { assertSame(param_2, param_3); assertSame(f_1, f_2); - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(f_name1.resolveBinding()); + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(f_name1.resolveBinding()); assertEquals(decls.length, 2); assertEquals(decls[0], f_name1); assertEquals(decls[1], f_name2); - decls = tu.getDeclarations(name_param1.resolveBinding()); + decls = tu.getDeclarationsInAST(name_param1.resolveBinding()); assertEquals(decls.length, 2); assertEquals(decls[0], name_param1); assertEquals(decls[1], name_param2); - decls = tu.getDeclarations(f_name2.resolveBinding()); + decls = tu.getDeclarationsInAST(f_name2.resolveBinding()); assertEquals(decls.length, 2); assertEquals(decls[0], f_name1); assertEquals(decls[1], f_name2); - decls = tu.getDeclarations(name_param2.resolveBinding()); + decls = tu.getDeclarationsInAST(name_param2.resolveBinding()); assertEquals(decls.length, 2); assertEquals(decls[0], name_param1); assertEquals(decls[1], name_param2); @@ -974,16 +974,16 @@ public class AST2Tests extends AST2BaseTest { assertSame(params[0], param_a); assertSame(params[1], param_b); - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(fName.resolveBinding()); + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(fName.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], fName); - decls = tu.getDeclarations(name_a.resolveBinding()); + decls = tu.getDeclarationsInAST(name_a.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_a); - decls = tu.getDeclarations(name_b.resolveBinding()); + decls = tu.getDeclarationsInAST(name_b.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_b); } @@ -1036,23 +1036,23 @@ public class AST2Tests extends AST2BaseTest { assertSame(function_1, function_2); assertSame(function_2, function_3); - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(name_f.resolveBinding()); + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(name_f.resolveBinding()); assertEquals(decls.length, 2); assertEquals(decls[0], name_f); assertEquals(decls[1], name_fdef); - decls = tu.getDeclarations(gdef.getDeclarator().getName() + decls = tu.getDeclarationsInAST(gdef.getDeclarator().getName() .resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], gdef.getDeclarator().getName()); - decls = tu.getDeclarations(name_fcall.resolveBinding()); + decls = tu.getDeclarationsInAST(name_fcall.resolveBinding()); assertEquals(decls.length, 2); assertEquals(decls[0], name_f); assertEquals(decls[1], name_fdef); - decls = tu.getDeclarations(name_fdef.resolveBinding()); + decls = tu.getDeclarationsInAST(name_fdef.resolveBinding()); assertEquals(decls.length, 2); assertEquals(decls[0], name_f); assertEquals(decls[1], name_fdef); @@ -1112,25 +1112,25 @@ public class AST2Tests extends AST2BaseTest { assertSame(var_2, var_3); assertSame(var_3, var_4); - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(fdef.getDeclarator().getName() + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(fdef.getDeclarator().getName() .resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], fdef.getDeclarator().getName()); - decls = tu.getDeclarations(name_i.resolveBinding()); + decls = tu.getDeclarationsInAST(name_i.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_i); - decls = tu.getDeclarations(name_i2.resolveBinding()); + decls = tu.getDeclarationsInAST(name_i2.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_i); - decls = tu.getDeclarations(name_i3.resolveBinding()); + decls = tu.getDeclarationsInAST(name_i3.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_i); - decls = tu.getDeclarations(name_i4.resolveBinding()); + decls = tu.getDeclarationsInAST(name_i4.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_i); } @@ -1166,17 +1166,17 @@ public class AST2Tests extends AST2BaseTest { assertNotNull(x1); assertSame(x1, x2); - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(compType.getName() + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(compType.getName() .resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], compType.getName()); - decls = tu.getDeclarations(name_x1.resolveBinding()); + decls = tu.getDeclarationsInAST(name_x1.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_x1); - decls = tu.getDeclarations(fdef.getDeclarator().getName() + decls = tu.getDeclarationsInAST(fdef.getDeclarator().getName() .resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], fdef.getDeclarator().getName()); @@ -1185,12 +1185,12 @@ public class AST2Tests extends AST2BaseTest { .getExpression()).getFieldOwner()).getOperand(); IASTElaboratedTypeSpecifier elaboratedTypeSpecifier = ((IASTElaboratedTypeSpecifier) castExpression .getTypeId().getDeclSpecifier()); - decls = tu.getDeclarations(elaboratedTypeSpecifier.getName() + decls = tu.getDeclarationsInAST(elaboratedTypeSpecifier.getName() .resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], compType.getName()); - decls = tu.getDeclarations(name_x2.resolveBinding()); + decls = tu.getDeclarationsInAST(name_x2.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_x1); } @@ -1218,17 +1218,17 @@ public class AST2Tests extends AST2BaseTest { assertNotNull(label_1); assertEquals(label_1, label_2); - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(collector.getName(0) + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(collector.getName(0) .resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], collector.getName(0)); - decls = tu.getDeclarations(collector.getName(1).resolveBinding()); + decls = tu.getDeclarationsInAST(collector.getName(1).resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], collector.getName(2)); - decls = tu.getDeclarations(collector.getName(2).resolveBinding()); + decls = tu.getDeclarationsInAST(collector.getName(2).resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], collector.getName(2)); } @@ -1238,7 +1238,7 @@ public class AST2Tests extends AST2BaseTest { buffer.append("int f( X x );"); //$NON-NLS-1$ IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.C); - // test tu.getDeclarations(IBinding) + // test tu.getDeclarationsInAST(IBinding) IASTSimpleDeclaration decl1 = (IASTSimpleDeclaration) tu .getDeclarations()[0]; IASTSimpleDeclaration decl2 = (IASTSimpleDeclaration) tu @@ -1252,19 +1252,19 @@ public class AST2Tests extends AST2BaseTest { .getDeclarators()[0]).getParameters()[0].getDeclarator() .getName(); - IASTName[] decls = tu.getDeclarations(name_X1.resolveBinding()); + IASTName[] decls = tu.getDeclarationsInAST(name_X1.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_X1); - decls = tu.getDeclarations(name_f.resolveBinding()); + decls = tu.getDeclarationsInAST(name_f.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_f); - decls = tu.getDeclarations(name_X2.resolveBinding()); + decls = tu.getDeclarationsInAST(name_X2.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_X1); - decls = tu.getDeclarations(name_x.resolveBinding()); + decls = tu.getDeclarationsInAST(name_x.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_x); } @@ -1272,12 +1272,12 @@ public class AST2Tests extends AST2BaseTest { public void testLongLong() throws ParserException { IASTTranslationUnit tu = parse("long long x;\n", ParserLanguage.C); //$NON-NLS-1$ - // test tu.getDeclarations(IBinding) + // test tu.getDeclarationsInAST(IBinding) IASTSimpleDeclaration decl1 = (IASTSimpleDeclaration) tu .getDeclarations()[0]; IASTName name_x = decl1.getDeclarators()[0].getName(); - IASTName[] decls = tu.getDeclarations(name_x.resolveBinding()); + IASTName[] decls = tu.getDeclarationsInAST(name_x.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_x); } @@ -1377,61 +1377,61 @@ public class AST2Tests extends AST2BaseTest { assertSame(cp, cp3); assertSame(red, red2); - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(name_hue.resolveBinding()); + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(name_hue.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_hue); - decls = tu.getDeclarations(e1.getName().resolveBinding()); + decls = tu.getDeclarationsInAST(e1.getName().resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], e1.getName()); - decls = tu.getDeclarations(e2.getName().resolveBinding()); + decls = tu.getDeclarationsInAST(e2.getName().resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], e2.getName()); - decls = tu.getDeclarations(e3.getName().resolveBinding()); + decls = tu.getDeclarationsInAST(e3.getName().resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], e3.getName()); - decls = tu.getDeclarations(name_hue2.resolveBinding()); + decls = tu.getDeclarationsInAST(name_hue2.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_hue); - decls = tu.getDeclarations(name_col.resolveBinding()); + decls = tu.getDeclarationsInAST(name_col.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_col); - decls = tu.getDeclarations(name_cp.resolveBinding()); + decls = tu.getDeclarationsInAST(name_cp.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_cp); - decls = tu.getDeclarations(fn.getDeclarator().getName() + decls = tu.getDeclarationsInAST(fn.getDeclarator().getName() .resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], fn.getDeclarator().getName()); - decls = tu.getDeclarations(r_col.resolveBinding()); + decls = tu.getDeclarationsInAST(r_col.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_col); - decls = tu.getDeclarations(r_blue.resolveBinding()); + decls = tu.getDeclarationsInAST(r_blue.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], e2.getName()); - decls = tu.getDeclarations(r_cp.resolveBinding()); + decls = tu.getDeclarationsInAST(r_cp.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_cp); - decls = tu.getDeclarations(r_col2.resolveBinding()); + decls = tu.getDeclarationsInAST(r_col2.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_col); - decls = tu.getDeclarations(r_cp2.resolveBinding()); + decls = tu.getDeclarationsInAST(r_cp2.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_cp); - decls = tu.getDeclarations(r_red.resolveBinding()); + decls = tu.getDeclarationsInAST(r_red.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], e1.getName()); } @@ -1449,8 +1449,8 @@ public class AST2Tests extends AST2BaseTest { assertTrue(f.getPointerOperators().length == 0); assertFalse(f.getNestedDeclarator().getPointerOperators().length == 0); - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(f.getNestedDeclarator().getName() + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(f.getNestedDeclarator().getName() .resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], f.getNestedDeclarator().getName()); @@ -1609,37 +1609,37 @@ public class AST2Tests extends AST2BaseTest { assertTrue(t_AP instanceof IPointerType); assertSame(((IPointerType) t_AP).getType(), A); - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(compSpec.getName() + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(compSpec.getName() .resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], compSpec.getName()); - decls = tu.getDeclarations(name_a1.resolveBinding()); + decls = tu.getDeclarationsInAST(name_a1.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_a1); - decls = tu.getDeclarations(name_A2.resolveBinding()); + decls = tu.getDeclarationsInAST(name_A2.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], compSpec.getName()); - decls = tu.getDeclarations(name_AP.resolveBinding()); + decls = tu.getDeclarationsInAST(name_AP.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_AP); - decls = tu.getDeclarations(name_A3.resolveBinding()); + decls = tu.getDeclarationsInAST(name_A3.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], compSpec.getName()); - decls = tu.getDeclarations(name_a2.resolveBinding()); + decls = tu.getDeclarationsInAST(name_a2.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_a2); - decls = tu.getDeclarations(name_AP2.resolveBinding()); + decls = tu.getDeclarationsInAST(name_AP2.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_AP); - decls = tu.getDeclarations(name_a3.resolveBinding()); + decls = tu.getDeclarationsInAST(name_a3.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_a3); } @@ -1699,16 +1699,16 @@ public class AST2Tests extends AST2BaseTest { assertTrue(t_c_6 instanceof IBasicType); assertEquals(((IBasicType) t_c_6).getType(), IBasicType.t_char); - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(name_a.resolveBinding()); + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(name_a.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_a); - decls = tu.getDeclarations(name_b.resolveBinding()); + decls = tu.getDeclarationsInAST(name_b.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_b); - decls = tu.getDeclarations(name_c.resolveBinding()); + decls = tu.getDeclarationsInAST(name_c.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_c); } @@ -1812,36 +1812,36 @@ public class AST2Tests extends AST2BaseTest { assertEquals(h_ps.length, 1); assertTrue(h_ps[0] instanceof IBasicType); - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(name_A1.resolveBinding()); + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(name_A1.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_A1); - decls = tu.getDeclarations(name_f.resolveBinding()); + decls = tu.getDeclarationsInAST(name_f.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_f); - decls = tu.getDeclarations(name_i.resolveBinding()); + decls = tu.getDeclarationsInAST(name_i.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_i); - decls = tu.getDeclarations(name_c.resolveBinding()); + decls = tu.getDeclarationsInAST(name_c.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_c); - decls = tu.getDeclarations(name_g.resolveBinding()); + decls = tu.getDeclarationsInAST(name_g.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_g); - decls = tu.getDeclarations(name_A2.resolveBinding()); + decls = tu.getDeclarationsInAST(name_A2.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_A1); - decls = tu.getDeclarations(name_h.resolveBinding()); + decls = tu.getDeclarationsInAST(name_h.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_h); - decls = tu.getDeclarations(name_A3.resolveBinding()); + decls = tu.getDeclarationsInAST(name_A3.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_A1); @@ -1927,45 +1927,45 @@ public class AST2Tests extends AST2BaseTest { assertNotNull(fieldDesignator.getName().toString()); } - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(name_Coord2.resolveBinding()); + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(name_Coord2.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_Coord); - decls = tu.getDeclarations(name_xy.resolveBinding()); + decls = tu.getDeclarationsInAST(name_xy.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_xy); - decls = tu.getDeclarations(name_y2.resolveBinding()); + decls = tu.getDeclarationsInAST(name_y2.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_y); - decls = tu.getDeclarations(name_x2.resolveBinding()); + decls = tu.getDeclarationsInAST(name_x2.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_x); - decls = tu.getDeclarations(name_Point2.resolveBinding()); + decls = tu.getDeclarationsInAST(name_Point2.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_Point); - decls = tu.getDeclarations(name_point.resolveBinding()); + decls = tu.getDeclarationsInAST(name_point.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_point); - decls = tu.getDeclarations(name_width2.resolveBinding()); + decls = tu.getDeclarationsInAST(name_width2.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_width); - decls = tu.getDeclarations(name_pos2.resolveBinding()); + decls = tu.getDeclarationsInAST(name_pos2.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_pos); - decls = tu.getDeclarations(name_xy2.resolveBinding()); + decls = tu.getDeclarationsInAST(name_xy2.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_xy); } - public void testMoreGetDeclarations1() throws Exception { + public void testMoregetDeclarationsInAST1() throws Exception { StringBuffer buffer = new StringBuffer(); //$NON-NLS-1$ buffer.append("struct S {\n"); //$NON-NLS-1$ buffer.append(" int a;\n"); //$NON-NLS-1$ @@ -1998,16 +1998,16 @@ public class AST2Tests extends AST2BaseTest { assertEquals(a1.resolveBinding(), a2.resolveBinding()); assertEquals(b1.resolveBinding(), b2.resolveBinding()); - IASTName[] decls = tu.getDeclarations(a1.resolveBinding()); + IASTName[] decls = tu.getDeclarationsInAST(a1.resolveBinding()); assertEquals(decls.length, 1); assertEquals(a1, decls[0]); - decls = tu.getDeclarations(b1.resolveBinding()); + decls = tu.getDeclarationsInAST(b1.resolveBinding()); assertEquals(decls.length, 1); assertEquals(b1, decls[0]); } - public void testMoreGetDeclarations2() throws Exception { + public void testMoregetDeclarationsInAST2() throws Exception { StringBuffer buffer = new StringBuffer(); //$NON-NLS-1$ buffer.append(" struct S { \n"); //$NON-NLS-1$ buffer.append(" int a; \n"); //$NON-NLS-1$ @@ -2034,16 +2034,16 @@ public class AST2Tests extends AST2BaseTest { assertEquals(a1.resolveBinding(), a2.resolveBinding()); assertEquals(b1.resolveBinding(), b2.resolveBinding()); - IASTName[] decls = tu.getDeclarations(a1.resolveBinding()); + IASTName[] decls = tu.getDeclarationsInAST(a1.resolveBinding()); assertEquals(decls.length, 1); assertEquals(a1, decls[0]); - decls = tu.getDeclarations(b1.resolveBinding()); + decls = tu.getDeclarationsInAST(b1.resolveBinding()); assertEquals(decls.length, 1); assertEquals(b1, decls[0]); } - public void testMoreGetDeclarations3() throws Exception { + public void testMoregetDeclarationsInAST3() throws Exception { StringBuffer buffer = new StringBuffer(); //$NON-NLS-1$ buffer.append(" typedef struct S { \n"); //$NON-NLS-1$ buffer.append(" int a; \n"); //$NON-NLS-1$ @@ -2075,11 +2075,11 @@ public class AST2Tests extends AST2BaseTest { assertEquals(a1.resolveBinding(), a2.resolveBinding()); assertEquals(b1.resolveBinding(), b2.resolveBinding()); - IASTName[] decls = tu.getDeclarations(a1.resolveBinding()); + IASTName[] decls = tu.getDeclarationsInAST(a1.resolveBinding()); assertEquals(decls.length, 1); assertEquals(a1, decls[0]); - decls = tu.getDeclarations(b1.resolveBinding()); + decls = tu.getDeclarationsInAST(b1.resolveBinding()); assertEquals(decls.length, 1); assertEquals(b1, decls[0]); } @@ -2098,8 +2098,8 @@ public class AST2Tests extends AST2BaseTest { assertTrue(((IPointerType) ft.getReturnType()).getType() instanceof IFunctionType); assertEquals(ft.getParameterTypes().length, 1); - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(def.getDeclarator() + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(def.getDeclarator() .getNestedDeclarator().getName().resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], def.getDeclarator().getNestedDeclarator() @@ -2124,11 +2124,11 @@ public class AST2Tests extends AST2BaseTest { assertTrue(ft.getParameterTypes()[0] instanceof IPointerType); assertTrue(((IPointerType) ft.getParameterTypes()[0]).isConst()); - // test tu.getDeclarations(IBinding) + // test tu.getDeclarationsInAST(IBinding) IASTName name_parm = ((IASTStandardFunctionDeclarator) def .getDeclarators()[0]).getParameters()[0].getDeclarator() .getName(); - IASTName[] decls = tu.getDeclarations(name_parm.resolveBinding()); + IASTName[] decls = tu.getDeclarationsInAST(name_parm.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_parm); } @@ -2164,18 +2164,18 @@ public class AST2Tests extends AST2BaseTest { assertTrue(((IFunctionType) ((IPointerType) ft3.getReturnType()) .getType()).getReturnType() instanceof IBasicType); - // test tu.getDeclarations(IBinding) - IASTName[] decls = tu.getDeclarations(def1.getDeclarator().getName() + // test tu.getDeclarationsInAST(IBinding) + IASTName[] decls = tu.getDeclarationsInAST(def1.getDeclarator().getName() .resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], def1.getDeclarator().getName()); - decls = tu.getDeclarations(def2.getDeclarator().getName() + decls = tu.getDeclarationsInAST(def2.getDeclarator().getName() .resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], def2.getDeclarator().getName()); - decls = tu.getDeclarations(def3.getDeclarator().getNestedDeclarator() + decls = tu.getDeclarationsInAST(def3.getDeclarator().getNestedDeclarator() .getName().resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], def3.getDeclarator().getNestedDeclarator() @@ -2206,14 +2206,14 @@ public class AST2Tests extends AST2BaseTest { assertTrue(gt_parm instanceof IBasicType); assertEquals(((IBasicType) gt_parm).getType(), IBasicType.t_void); - // test tu.getDeclarations(IBinding) + // test tu.getDeclarationsInAST(IBinding) assertTrue(def.getDeclarator() instanceof IASTStandardFunctionDeclarator); IASTName name_g = ((IASTStandardFunctionDeclarator) def.getDeclarator()) .getParameters()[0].getDeclarator().getName(); IASTName name_g_call = ((IASTIdExpression) ((IASTFunctionCallExpression) ((IASTReturnStatement) ((IASTCompoundStatement) def .getBody()).getStatements()[0]).getReturnValue()) .getFunctionNameExpression()).getName(); - IASTName[] decls = tu.getDeclarations(name_g_call.resolveBinding()); + IASTName[] decls = tu.getDeclarationsInAST(name_g_call.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_g); } @@ -2249,9 +2249,9 @@ public class AST2Tests extends AST2BaseTest { assertTrue(vpt_2_2 instanceof IBasicType); assertEquals(((IBasicType) vpt_2_2).getType(), IBasicType.t_int); - // test tu.getDeclarations(IBinding) + // test tu.getDeclarationsInAST(IBinding) IASTName[] decls = tu - .getDeclarations(((IASTStandardFunctionDeclarator) decl + .getDeclarationsInAST(((IASTStandardFunctionDeclarator) decl .getDeclarators()[0]).getNestedDeclarator().getName() .resolveBinding()); assertEquals(decls.length, 1); @@ -2296,20 +2296,20 @@ public class AST2Tests extends AST2BaseTest { assertTrue(signal_ret3 instanceof IBasicType); assertEquals(((IBasicType) signal_ret3).getType(), IBasicType.t_void); - // test tu.getDeclarations(IBinding) + // test tu.getDeclarationsInAST(IBinding) IASTName name_DWORD = decl1.getDeclarators()[0].getName(); IASTName name_v = decl2.getDeclarators()[0].getName(); - IASTName[] decls = tu.getDeclarations(name_DWORD.resolveBinding()); + IASTName[] decls = tu.getDeclarationsInAST(name_DWORD.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_DWORD); - decls = tu.getDeclarations(((IASTNamedTypeSpecifier) decl2 + decls = tu.getDeclarationsInAST(((IASTNamedTypeSpecifier) decl2 .getDeclSpecifier()).getName().resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_DWORD); - decls = tu.getDeclarations(((IASTNamedTypeSpecifier) decl3 + decls = tu.getDeclarationsInAST(((IASTNamedTypeSpecifier) decl3 .getDeclSpecifier()).getName().resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_v); @@ -2385,7 +2385,7 @@ public class AST2Tests extends AST2BaseTest { IBasicType.t_void); assertTrue(((ITypedef) signal_parm_t2_ret_1).getName().equals("DWORD")); //$NON-NLS-1$ - // test tu.getDeclarations(IBinding) + // test tu.getDeclarationsInAST(IBinding) IASTName name_pfv = decl2.getDeclarators()[0].getNestedDeclarator() .getName(); IASTName name_pfv1 = ((IASTNamedTypeSpecifier) decl3.getDeclSpecifier()) @@ -2394,11 +2394,11 @@ public class AST2Tests extends AST2BaseTest { .getDeclarators()[0]).getParameters()[1].getDeclSpecifier()) .getName(); - IASTName[] decls = tu.getDeclarations(name_pfv1.resolveBinding()); + IASTName[] decls = tu.getDeclarationsInAST(name_pfv1.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_pfv); - decls = tu.getDeclarations(name_pfv2.resolveBinding()); + decls = tu.getDeclarationsInAST(name_pfv2.resolveBinding()); assertEquals(decls.length, 1); assertEquals(decls[0], name_pfv); } @@ -2895,7 +2895,7 @@ public class AST2Tests extends AST2BaseTest { assertInstances(col, x1, 1); assertInstances(col, x2, 2); - IASTName[] ds = tu.getDeclarations(x2); + IASTName[] ds = tu.getDeclarationsInAST(x2); assertEquals(ds.length, 1); assertSame(ds[0], col.getName(11)); } diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/DOMLocationMacroTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/DOMLocationMacroTests.java index 2401a8f92bf..1bbf28711c6 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/DOMLocationMacroTests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/DOMLocationMacroTests.java @@ -283,7 +283,7 @@ public class DOMLocationMacroTests extends AST2BaseTest { assertNotNull( binding2 ); assertNotSame( binding1, binding2 ); IASTName [] firstReferences = tu.getReferences( binding1 ); - IASTName [] firstDeclarations = tu.getDeclarations( binding1 ); + IASTName [] firstDeclarations = tu.getDeclarationsInAST( binding1 ); assertEquals( firstReferences.length, 2 ); assertEquals( firstReferences[0].getPropertyInParent(), IASTTranslationUnit.EXPANSION_NAME ); assertEquals( firstReferences[0].getParent(), tu ); @@ -292,7 +292,7 @@ public class DOMLocationMacroTests extends AST2BaseTest { assertEquals( firstDeclarations.length, 1 ); assertSame( ABC1.getName(), firstDeclarations[0] ); IASTName [] secondReferences = tu.getReferences(binding2); - IASTName [] secondDeclarations = tu.getDeclarations( binding2 ); + IASTName [] secondDeclarations = tu.getDeclarationsInAST( binding2 ); assertEquals( 1, secondReferences.length ); assertEquals( secondReferences[0].getPropertyInParent(), IASTTranslationUnit.EXPANSION_NAME ); assertEquals( secondReferences[0].getParent(), tu ); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/DOMSearchUtil.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/DOMSearchUtil.java similarity index 87% rename from core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/DOMSearchUtil.java rename to core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/DOMSearchUtil.java index 0ed2343ae39..7eda50efc02 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/DOMSearchUtil.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/DOMSearchUtil.java @@ -9,12 +9,15 @@ * IBM Corporation - initial API and implementation * Markus Schorn (Wind River Systems) *******************************************************************************/ -package org.eclipse.cdt.core.dom; +package org.eclipse.cdt.core.parser.tests.ast2; import java.util.ArrayList; import java.util.List; +import junit.framework.Assert; + import org.eclipse.cdt.core.CCorePlugin; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.ast.DOMException; import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; @@ -27,10 +30,8 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPMethod; import org.eclipse.cdt.core.parser.ParserLanguage; import org.eclipse.cdt.core.parser.util.ArrayUtil; import org.eclipse.cdt.internal.core.pdom.dom.PDOMBinding; -import org.eclipse.cdt.internal.core.pdom.dom.PDOMName; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.content.IContentType; @@ -152,8 +153,8 @@ public class DOMSearchUtil { * ( CSearchPattern.DECLARATION | CSearchPattern.REFERENCES | CSearchPattern.ALL_OCCURRENCES ) * @return IASTName[] declarations, references, or both depending on limitTo that correspond to the IASTName searchName searched for */ - public static IASTName[] getNamesFromDOM(IASTName searchName, int limitTo) { - IASTName[] names = null; + public static IName[] getNamesFromDOM(IASTName searchName, int limitTo) { + IName[] names = null; IASTTranslationUnit tu = searchName.getTranslationUnit(); if (tu == null) { @@ -162,24 +163,20 @@ public class DOMSearchUtil { IBinding binding = searchName.resolveBinding(); if (binding instanceof PDOMBinding) { - try { - ArrayList pdomNames = new ArrayList(); - // First decls - PDOMName name = ((PDOMBinding)binding).getFirstDeclaration(); - while (name != null) { - pdomNames.add(name); - name = name.getNextInBinding(); - } - // Next defs - name = ((PDOMBinding)binding).getFirstDefinition(); - while (name != null) { - pdomNames.add(name); - name = name.getNextInBinding(); - } - names = (IASTName[])pdomNames.toArray(new IASTName[pdomNames.size()]); - } catch (CoreException e) { - CCorePlugin.log(e); - } + Assert.fail("Not implemented"); +// try { +// ArrayList pdomNames = new ArrayList(); +// IPDOMResolver pdom= ((PDOMBinding) binding).getPDOM(); +// // First decls +// names= pdom.getDeclarations(binding); +// pdomNames.addAll(Arrays.asList(names)); +// // Next defs +// names= pdom.getDefinitions(binding); +// pdomNames.addAll(Arrays.asList(names)); +// names = (IName[])pdomNames.toArray(new IName[pdomNames.size()]); +// } catch (CoreException e) { +// CCorePlugin.log(e); +// } } else { names = getNames(tu, binding, limitTo); @@ -202,16 +199,16 @@ public class DOMSearchUtil { IASTName[] names = null; if (limitTo == DECLARATIONS || limitTo == DECLARATIONS_DEFINITIONS) { - names = tu.getDeclarations(binding); + names = tu.getDeclarationsInAST(binding); } else if (limitTo == REFERENCES) { names = tu.getReferences(binding); } else if (limitTo == DEFINITIONS) { - names = tu.getDefinitions(binding); + names = tu.getDefinitionsInAST(binding); } else if (limitTo == ALL_OCCURRENCES){ - names = tu.getDeclarations(binding); + names = tu.getDeclarationsInAST(binding); names = (IASTName[])ArrayUtil.addAll(IASTName.class, names, tu.getReferences(binding)); } else { // assume ALL - names = tu.getDeclarations(binding); + names = tu.getDeclarationsInAST(binding); names = (IASTName[])ArrayUtil.addAll(IASTName.class, names, tu.getReferences(binding)); } diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/DOMSelectionParseBaseTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/DOMSelectionParseBaseTest.java index 6ec1031e7b3..155017cba32 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/DOMSelectionParseBaseTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/DOMSelectionParseBaseTest.java @@ -11,7 +11,7 @@ package org.eclipse.cdt.core.parser.tests.ast2; import org.eclipse.cdt.core.CCorePlugin; -import org.eclipse.cdt.core.dom.DOMSearchUtil; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IASTNode; import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; @@ -53,11 +53,11 @@ public class DOMSelectionParseBaseTest extends DOMFileBasePluginTest { return null; } - protected IASTName[] getDeclarationOffTU(IASTName name) { + protected IName[] getDeclarationOffTU(IASTName name) { return DOMSearchUtil.getNamesFromDOM(name, DOMSearchUtil.DECLARATIONS); } - protected IASTName[] getReferencesOffTU(IASTName name) { + protected IName[] getReferencesOffTU(IASTName name) { return DOMSearchUtil.getNamesFromDOM(name, DOMSearchUtil.REFERENCES); } } diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/DOMSelectionParseTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/DOMSelectionParseTest.java index b93a54581cf..12888fe9a1e 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/DOMSelectionParseTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/DOMSelectionParseTest.java @@ -13,6 +13,7 @@ package org.eclipse.cdt.core.parser.tests.ast2; import java.io.StringWriter; import java.io.Writer; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IASTNode; import org.eclipse.cdt.core.dom.ast.IBinding; @@ -55,7 +56,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( node instanceof IASTName ); assertTrue( ((IASTName)node).resolveBinding() instanceof IVariable ); assertEquals( ((IASTName)node).toString(), "x" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "x" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 15); @@ -71,7 +72,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( node instanceof IASTName ); assertTrue( ((IASTName)node).resolveBinding() instanceof IFunction ); assertEquals( ((IASTName)node).toString(), "x" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "x" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 4); @@ -95,7 +96,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( node instanceof IASTName ); assertTrue( ((IASTName)node).resolveBinding() instanceof IFunction ); assertEquals( ((IASTName)node).toString(), "x" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "x" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 4); @@ -135,7 +136,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( node instanceof IASTName ); assertTrue( ((IASTName)node).resolveBinding() instanceof IParameter ); assertEquals( ((IASTName)node).toString(), "argc" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "argc" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 14); @@ -170,7 +171,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( node instanceof IASTName ); assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPMethod ); assertEquals( ((IASTName)node).toString(), "playHorn" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 2); assertEquals( decls[0].toString(), "playHorn" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 28); @@ -209,7 +210,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( node instanceof IASTName ); assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPNamespace ); assertEquals( ((IASTName)node).toString(), "Muppets" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "Muppets" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 10); @@ -244,7 +245,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( node instanceof IASTName ); assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPClassType ); assertEquals( ((IASTName)node).toString(), "Foo" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "Foo" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 6); @@ -288,7 +289,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( node instanceof IASTName ); assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPMethod ); IBinding binding = ((IASTName)node).resolveBinding(); - IASTName[] decls = null; + IName[] decls = null; switch( i ) { case 0: @@ -339,7 +340,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( node instanceof IASTName ); assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPMethod ); assertEquals( ((IASTName)node).toString(), "getAnswer" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "getAnswer" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 29); @@ -354,7 +355,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( node instanceof IASTName ); assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPConstructor ); assertEquals( ((IASTName)node).toString(), "ABC" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 2); assertEquals( decls[0].toString(), "ABC" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 20); @@ -427,7 +428,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( node instanceof IASTName ); assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPField ); assertEquals( ((IASTName)node).toString(), "stInt" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 2); assertEquals( decls[0].toString(), "stInt" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 37); @@ -466,7 +467,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPClassType ); assertEquals( ((IASTName)node).toString(), "Squaw" ); //$NON-NLS-1$ assertEquals( ((ICPPClassType)((IASTName)node).resolveBinding()).getKey(), ICompositeType.k_union ); - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "Squaw" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 6); @@ -490,7 +491,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( node instanceof IASTName ); assertTrue( ((IASTName)node).resolveBinding() instanceof IVariable ); assertEquals( ((IASTName)node).toString(), "FOUND_ME" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "FOUND_ME" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 10); @@ -511,7 +512,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( node instanceof IASTName ); assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPConstructor ); assertEquals( ((IASTName)node).toString(), "ABC" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "ABC" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 21); @@ -532,7 +533,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( node instanceof IASTName ); assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPMethod ); assertEquals( ((IASTName)node).toString(), "f_SD" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 2); assertEquals( decls[0].toString(), "f_SD" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 71); @@ -556,7 +557,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( node instanceof IASTName ); assertTrue( ((IASTName)node).resolveBinding() instanceof IFunction ); assertEquals( ((IASTName)node).toString(), "f_SD" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 2); assertEquals( decls[0].toString(), "f_SD" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 109); @@ -574,7 +575,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( node instanceof IASTName ); assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPMethod ); assertEquals( ((IASTName)node).toString(), "initialize" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 2); assertEquals( decls[0].toString(), "initialize" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 17); @@ -592,7 +593,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( node instanceof IASTName ); assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPConstructor ); assertEquals( ((IASTName)node).toString(), "B" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "B" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 17); @@ -612,7 +613,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( node instanceof IASTName ); assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPClassType ); assertEquals( ((IASTName)node).toString(), "A" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "A" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 6); @@ -633,7 +634,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( node instanceof IASTName ); assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPClassType ); assertEquals( ((IASTName)node).toString(), "AAA" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "AAA" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 75); @@ -668,7 +669,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( node instanceof IASTName ); assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPField ); assertEquals( ((IASTName)node).toString(), "rank" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "rank" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 36); @@ -701,7 +702,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( ((IASTName)node).resolveBinding() instanceof IFunction ); assertEquals( ((IASTName)node).toString(), "rank" ); //$NON-NLS-1$ assertEquals( ((ASTNode)node).getOffset(), index); - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "rank" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 4); @@ -938,7 +939,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPNamespace ); assertEquals( ((IASTName)node).toString(), "N" ); //$NON-NLS-1$ assertEquals( ((ASTNode)node).getOffset(), index); - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "N" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 10); @@ -957,7 +958,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( ((IASTName)node).resolveBinding() instanceof IParameter ); assertEquals( ((IASTName)node).toString(), "itself" ); //$NON-NLS-1$ assertEquals( ((ASTNode)node).getOffset(), index); - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "itself" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 36); @@ -977,7 +978,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( ((IASTName)node).resolveBinding() instanceof ICompositeType ); assertEquals( ((IASTName)node).toString(), "Data" ); //$NON-NLS-1$ assertEquals( ((ASTNode)node).getOffset(), index); - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "Data" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 36); @@ -1019,7 +1020,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( node instanceof IASTName ); assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPField ); assertEquals( ((IASTName)node).toString(), "bar" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "bar" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 33); @@ -1044,7 +1045,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( ((IASTName)node).resolveBinding() instanceof IMacroBinding ); assertEquals( ((IASTName)node).toString(), "UINT32" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "UINT32" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 8); @@ -1103,7 +1104,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPConstructor ); assertEquals( ((IASTName)node).toString(), "Point" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "Point" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 53); @@ -1126,7 +1127,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( ((IASTName)node).resolveBinding() instanceof IMacroBinding ); assertEquals( ((IASTName)node).toString(), "koo" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "koo" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 19); @@ -1157,7 +1158,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPMethod ); assertEquals( ((IASTName)node).toString(), "operator =" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "operator =" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 51); @@ -1183,7 +1184,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( ((IASTName)node).resolveBinding() instanceof IMacroBinding ); assertEquals( ((IASTName)node).toString(), "swap" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "swap" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 58); @@ -1209,7 +1210,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPMethod ); assertEquals( ((IASTName)node).toString(), "method1" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "method1" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 41); @@ -1233,7 +1234,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPConstructor ); assertEquals( ((IASTName)node).toString(), "A" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "A" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 29); @@ -1258,7 +1259,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPMethod ); assertEquals( ((IASTName)node).toString(), "method1" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "method1" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 21); @@ -1277,7 +1278,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( ((IASTName)node).resolveBinding() instanceof IVariable ); assertEquals( ((IASTName)node).toString(), "i" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "i" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 4); @@ -1305,7 +1306,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPMethod ); assertEquals( ((IASTName)node).toString(), "bar" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "bar" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 34); @@ -1333,7 +1334,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPField ); assertEquals( ((IASTName)node).toString(), "bar" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "bar" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 33); @@ -1357,7 +1358,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( ((IASTName)node).resolveBinding() instanceof IVariable ); assertEquals( ((IASTName)node).toString(), "x" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "x" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 17); @@ -1379,7 +1380,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( ((IASTName)node).resolveBinding() instanceof IParameter ); assertEquals( ((IASTName)node).toString(), "argc" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "argc" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 13); @@ -1405,7 +1406,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( ((IASTName)node).resolveBinding() instanceof IVariable ); assertEquals( ((IASTName)node).toString(), "x" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "x" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 19); @@ -1454,7 +1455,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPFunction ); assertEquals( ((IASTName)node).toString(), "g" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "g" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 89); @@ -1478,7 +1479,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( ((IASTName)node).resolveBinding() instanceof IEnumeration ); assertEquals( ((IASTName)node).toString(), "E" ); //$NON-NLS-1$ - IASTName[] decls = getReferencesOffTU((IASTName)node); + IName[] decls = getReferencesOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "E" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 76); @@ -1508,7 +1509,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( ((IASTName)node).resolveBinding() instanceof IMacroBinding ); assertEquals( ((IASTName)node).toString(), "HANDLE" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "HANDLE" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 36); @@ -1551,13 +1552,13 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPMethod ); assertEquals( ((IASTName)node).toString(), "setColor" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "setColor" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 67); assertEquals( ((ASTNode)decls[0]).getLength(), 8); - IASTName[] refs = getReferencesOffTU((IASTName)node); + IName[] refs = getReferencesOffTU((IASTName)node); assertEquals(refs.length, 1); assertEquals( refs[0].toString(), "setColor" ); //$NON-NLS-1$ assertEquals( ((ASTNode)refs[0]).getOffset(), 162); @@ -1581,7 +1582,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( ((IASTName)node).resolveBinding() instanceof IVariable ); assertEquals( ((IASTName)node).toString(), "c" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "c" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 42); @@ -1619,7 +1620,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPField ); assertEquals( ((IASTName)node).toString(), "i" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "i" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 39); @@ -1647,7 +1648,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( node instanceof IASTName ); assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPNamespace ); assertEquals( ((IASTName)node).toString(), "Foo" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 2); assertEquals( decls[0].toString(), "Foo" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 10); @@ -1670,7 +1671,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( node instanceof IASTName ); assertTrue( ((IASTName)node).resolveBinding() instanceof IMacroBinding ); assertEquals( ((IASTName)node).toString(), "MyChicken" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "MyChicken" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 38); @@ -1696,7 +1697,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( node instanceof IASTName ); assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPVariable ); assertEquals( ((IASTName)node).toString(), "c" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "c" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 86); @@ -1707,7 +1708,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertNotNull( node ); assertTrue( node instanceof IASTName ); assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPVariable ); - IASTName[] refs = getReferencesOffTU((IASTName)node); + IName[] refs = getReferencesOffTU((IASTName)node); assertEquals(refs.length, 1); assertEquals( refs[0].toString(), "c" ); //$NON-NLS-1$ assertEquals( ((ASTNode)refs[0]).getOffset(), 168); @@ -1729,7 +1730,7 @@ public class DOMSelectionParseTest extends DOMSelectionParseBaseTest { assertTrue( node instanceof IASTName ); assertTrue( ((IASTName)node).resolveBinding() instanceof ICPPTemplateInstance ); assertEquals( ((IASTName)node).toString(), "AAA" ); //$NON-NLS-1$ - IASTName[] decls = getDeclarationOffTU((IASTName)node); + IName[] decls = getDeclarationOffTU((IASTName)node); assertEquals(decls.length, 1); assertEquals( decls[0].toString(), "AAA" ); //$NON-NLS-1$ assertEquals( ((ASTNode)decls[0]).getOffset(), 53); diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/ClassTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/ClassTests.java index 2328da97817..13dcf43eeac 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/ClassTests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/ClassTests.java @@ -13,8 +13,8 @@ package org.eclipse.cdt.internal.pdom.tests; import java.util.regex.Pattern; import org.eclipse.cdt.core.CCorePlugin; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.ast.IASTFileLocation; -import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IBinding; import org.eclipse.cdt.core.dom.ast.IField; import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType; @@ -53,7 +53,7 @@ public class ClassTests extends PDOMTestBase { assertEquals(1, Bmethods.length); ICPPMethod Bf = Bmethods[0]; assertEquals("f", Bf.getName()); - IASTName [] Bf_refs = pdom.getReferences(Bf); + IName [] Bf_refs = pdom.getReferences(Bf); assertEquals(1, Bf_refs.length); IASTFileLocation loc = Bf_refs[0].getFileLocation(); assertEquals(offset(95, 84), loc.getNodeOffset()); @@ -71,7 +71,7 @@ public class ClassTests extends PDOMTestBase { assertEquals(1, fields.length); IField NestedB_x = fields[0]; - IASTName[] refs = pdom.getReferences(NestedB); + IName[] refs = pdom.getReferences(NestedB); assertEquals(1, refs.length); IASTFileLocation loc = refs[0].getFileLocation(); assertEquals(offset(96, 87), loc.getNodeOffset()); @@ -88,7 +88,7 @@ public class ClassTests extends PDOMTestBase { ICPPNamespaceScope ns = ((ICPPNamespace)bindings[0]).getNamespaceScope(); bindings = ns.find("testRef"); assertEquals(1, bindings.length); - IASTName[] refs = pdom.getReferences(bindings[0]); + IName[] refs = pdom.getReferences(bindings[0]); for (int i = 0; i < refs.length; ++i) System.out.println(refs[i].getFileLocation().getNodeOffset()); assertEquals(5, refs.length); diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/EnumerationTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/EnumerationTests.java index c795b199969..8c4018fc13d 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/EnumerationTests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/EnumerationTests.java @@ -13,8 +13,8 @@ package org.eclipse.cdt.internal.pdom.tests; import java.util.regex.Pattern; import org.eclipse.cdt.core.CCorePlugin; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.ast.IASTFileLocation; -import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IBinding; import org.eclipse.cdt.core.dom.ast.IEnumeration; import org.eclipse.cdt.core.dom.ast.IEnumerator; @@ -56,19 +56,19 @@ public class EnumerationTests extends PDOMTestBase { assertEquals("cc", enumerators[2].getName()); // Declaration of TestEnum - IASTName[] enumDecls = pdom.getDeclarations(enumeration); + IName[] enumDecls = pdom.getDeclarations(enumeration); assertEquals(1, enumDecls.length); IASTFileLocation loc = enumDecls[0].getFileLocation(); assertEquals(5, loc.getNodeOffset()); // Reference to TestEnum - IASTName[] enumRefs = pdom.getReferences(enumeration); + IName[] enumRefs = pdom.getReferences(enumeration); assertEquals(1, enumRefs.length); loc = enumRefs[0].getFileLocation(); assertEquals(offset(46, 40), loc.getNodeOffset()); // Reference to a - IASTName[] aRefs = pdom.getReferences(enumerators[0]); + IName[] aRefs = pdom.getReferences(enumerators[0]); assertEquals(1, aRefs.length); loc = aRefs[0].getFileLocation(); assertEquals(offset(74, 67), loc.getNodeOffset()); @@ -88,19 +88,19 @@ public class EnumerationTests extends PDOMTestBase { assertEquals("cppc", enumerators[2].getName()); // Declaration of TestEnum - IASTName[] enumDecls = pdom.getDeclarations(enumeration); + IName[] enumDecls = pdom.getDeclarations(enumeration); assertEquals(1, enumDecls.length); IASTFileLocation loc = enumDecls[0].getFileLocation(); assertEquals(5, loc.getNodeOffset()); // Reference to TestEnum - IASTName[] enumRefs = pdom.getReferences(enumeration); + IName[] enumRefs = pdom.getReferences(enumeration); assertEquals(1, enumRefs.length); loc = enumRefs[0].getFileLocation(); assertEquals(offset(49, 43), loc.getNodeOffset()); // Reference to a - IASTName[] aRefs = pdom.getReferences(enumerators[0]); + IName[] aRefs = pdom.getReferences(enumerators[0]); assertEquals(1, aRefs.length); loc = aRefs[0].getFileLocation(); assertEquals(offset(79, 72), loc.getNodeOffset()); diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/TypesTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/TypesTests.java index 4e3eeb7c432..ae095e27c0a 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/TypesTests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/TypesTests.java @@ -13,8 +13,8 @@ package org.eclipse.cdt.internal.pdom.tests; import java.util.regex.Pattern; import org.eclipse.cdt.core.CCorePlugin; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.ast.IASTFileLocation; -import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IBinding; import org.eclipse.cdt.core.dom.ast.ICompositeType; import org.eclipse.cdt.core.dom.ast.IField; @@ -56,7 +56,7 @@ public class TypesTests extends PDOMTestBase { assertEquals("x", x.getName()); // Make sure that there is a reference in g(); - IASTName[] xRefs = pdom.getReferences(x); + IName[] xRefs = pdom.getReferences(x); assertEquals(1, xRefs.length); IASTFileLocation loc = xRefs[0].getFileLocation(); assertEquals(offset(85, 77), loc.getNodeOffset()); @@ -73,7 +73,7 @@ public class TypesTests extends PDOMTestBase { assertEquals("f", f.getName()); // Make sure that there is a reference in g(); - IASTName[] fRefs = pdom.getReferences(f); + IName[] fRefs = pdom.getReferences(f); assertEquals(1, fRefs.length); IASTFileLocation loc = fRefs[0].getFileLocation(); assertEquals(offset(84, 74), loc.getNodeOffset()); @@ -83,7 +83,7 @@ public class TypesTests extends PDOMTestBase { IBinding [] bindings = pdom.findBindings(Pattern.compile("spinlock_t"), new NullProgressMonitor()); assertEquals(1, bindings.length); ITypedef spinlock_t = (ITypedef)bindings[0]; - IASTName [] refs = pdom.getReferences(spinlock_t); + IName [] refs = pdom.getReferences(spinlock_t); assertEquals(1, refs.length); IASTFileLocation loc = refs[0].getFileLocation(); assertEquals(offset(44, 40), loc.getNodeOffset()); diff --git a/core/org.eclipse.cdt.core/META-INF/MANIFEST.MF b/core/org.eclipse.cdt.core/META-INF/MANIFEST.MF index 146204991aa..03d92597b21 100644 --- a/core/org.eclipse.cdt.core/META-INF/MANIFEST.MF +++ b/core/org.eclipse.cdt.core/META-INF/MANIFEST.MF @@ -16,6 +16,7 @@ Export-Package: org.eclipse.cdt.core, org.eclipse.cdt.core.dom.ast.gnu.c, org.eclipse.cdt.core.dom.ast.gnu.cpp, org.eclipse.cdt.core.formatter, + org.eclipse.cdt.core.index, org.eclipse.cdt.core.model, org.eclipse.cdt.core.model.util, org.eclipse.cdt.core.parser, diff --git a/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/core/browser/PDOMTypeInfo.java b/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/core/browser/PDOMTypeInfo.java index 1f3a39b0e79..43bb79df5bb 100644 --- a/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/core/browser/PDOMTypeInfo.java +++ b/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/core/browser/PDOMTypeInfo.java @@ -13,10 +13,10 @@ package org.eclipse.cdt.core.browser; import org.eclipse.cdt.core.CCorePlugin; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.IPDOM; import org.eclipse.cdt.core.dom.IPDOMResolver; import org.eclipse.cdt.core.dom.ast.DOMException; -import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IBinding; import org.eclipse.cdt.core.dom.ast.cpp.ICPPBinding; import org.eclipse.cdt.core.model.ICProject; @@ -122,7 +122,7 @@ public class PDOMTypeInfo implements ITypeInfo { try { IPDOM pdom = CCorePlugin.getPDOMManager().getPDOM(project); IPDOMResolver resolver = (IPDOMResolver) pdom.getAdapter(IPDOMResolver.class); - IASTName[] names= resolver.getDefinitions(binding); + IName[] names= resolver.getDefinitions(binding); return names != null && names.length > 0 ? new PDOMTypeReference(names[0], project) : null; } catch (CoreException e) { CCorePlugin.log(e); diff --git a/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/core/browser/PDOMTypeReference.java b/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/core/browser/PDOMTypeReference.java index c0a2b3e435f..5765e6b0728 100644 --- a/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/core/browser/PDOMTypeReference.java +++ b/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/core/browser/PDOMTypeReference.java @@ -11,7 +11,7 @@ package org.eclipse.cdt.core.browser; -import org.eclipse.cdt.core.dom.ast.IASTName; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.model.CoreModel; import org.eclipse.cdt.core.model.ICElement; import org.eclipse.cdt.core.model.ICProject; @@ -29,11 +29,11 @@ import org.eclipse.core.runtime.Path; */ public class PDOMTypeReference implements ITypeReference { - private final IASTName name; + private final IName name; private final ICProject project; private final IPath path; - public PDOMTypeReference(IASTName name, ICProject project) { + public PDOMTypeReference(IName name, ICProject project) { this.name = name; this.project = project; this.path = new Path(name.getFileLocation().getFileName()); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IIndex.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IIndex.java deleted file mode 100644 index 7cd3bb88979..00000000000 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IIndex.java +++ /dev/null @@ -1,35 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005 QNX Software Systems and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * QNX - Initial API and implementation - *******************************************************************************/ - -package org.eclipse.cdt.core.dom; - -/** - * @author Doug Schaefer - * - */ -public interface IIndex { - - /** - * Get the index reader. This is used by clients to get at the - * contents of the index. - * - * @return index reader - */ - public IIndexReader getReader(); - - /** - * Get the index writer. This is used by indexers to populate - * the index. - * - * @return index writer - */ - public IIndexWriter getWriter(); -} diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IIndexReader.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IIndexReader.java deleted file mode 100644 index be345fe2592..00000000000 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IIndexReader.java +++ /dev/null @@ -1,20 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005 QNX Software Systems and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * QNX - Initial API and implementation - *******************************************************************************/ - -package org.eclipse.cdt.core.dom; - -/** - * @author Doug Schaefer - * - */ -public interface IIndexReader { - -} diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IIndexWriter.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IIndexWriter.java deleted file mode 100644 index 0c8345a9e35..00000000000 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IIndexWriter.java +++ /dev/null @@ -1,20 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005 QNX Software Systems and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * QNX - Initial API and implementation - *******************************************************************************/ - -package org.eclipse.cdt.core.dom; - -/** - * @author Doug Schaefer - * - */ -public interface IIndexWriter { - -} diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IName.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IName.java new file mode 100644 index 00000000000..3b340233244 --- /dev/null +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IName.java @@ -0,0 +1,64 @@ +/******************************************************************************* + * Copyright (c) 2006 Wind River Systems, Inc. and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Markus Schorn - initial API and implementation + *******************************************************************************/ + +package org.eclipse.cdt.core.dom; + +import org.eclipse.cdt.core.dom.ast.IASTFileLocation; +import org.eclipse.cdt.core.dom.ast.IASTNode; +import org.eclipse.cdt.core.dom.ast.IBinding; + +/** + * Common interface for names in the index and the AST + * @since 4.0 + */ +public interface IName { + + public static final IName[] EMPTY_NAME_ARRAY = new IName[0]; + + /** + * Return a char array representation of the name. + * + * @return ~ toString().toCharArray() + */ + public char[] toCharArray(); + + /** + * Resolve the semantic object this name is referring to. + * + * @return IBinding binding + */ + public IBinding resolveBinding(); + + /** + * Is this name being used in the AST as the introduction of a declaration? + * @return boolean + */ + public boolean isDeclaration(); + + /** + * Is this name being used in the AST as a reference rather than a declaration? + * @return boolean + */ + + public boolean isReference(); + + /** + * Is this name being used in the AST as a reference rather than a declaration? + * @return boolean + */ + public boolean isDefinition(); + + /** + * Same as {@link IASTNode#getFileLocation()} + * @return the file location of this name. + */ + public IASTFileLocation getFileLocation(); +} diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IPDOMResolver.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IPDOMResolver.java index 9b4a2a39b9b..66ab7f92ca7 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IPDOMResolver.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IPDOMResolver.java @@ -26,10 +26,10 @@ public interface IPDOMResolver extends IAdaptable { public IBinding resolveBinding(IASTName name); - public IASTName[] getDeclarations(IBinding binding) throws CoreException; + public IName[] getDeclarations(IBinding binding) throws CoreException; - public IASTName[] getDefinitions(IBinding binding) throws CoreException; + public IName[] getDefinitions(IBinding binding) throws CoreException; - public IASTName[] getReferences(IBinding binding) throws CoreException; + public IName[] getReferences(IBinding binding) throws CoreException; } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTFileLocation.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTFileLocation.java index 58d8eaaf9e8..c79109aea54 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTFileLocation.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTFileLocation.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. + * Copyright (c) 2004, 2006 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -25,16 +25,18 @@ public interface IASTFileLocation extends IASTNodeLocation { public String getFileName(); /** - * Get the starting line number. + * Get the starting line number. Locations obtained via the index do not have line numbers + * and return 0. * - * @return in representing line number + * @return int representing line number or 0 if not applicable */ public int getStartingLineNumber(); /** - * Get the ending line number. + * Get the ending line number. Locations obtained via the index do not have line numbers + * and return 0. * - * @return int representing line number + * @return int representing line number or 0 if not applicable */ public int getEndingLineNumber(); } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTName.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTName.java index aa118f70a44..48b46b4054d 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTName.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTName.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. + * Copyright (c) 2004, 2006 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -7,9 +7,12 @@ * * Contributors: * IBM - Initial API and implementation + * Markus Schorn (Wind River Systems) *******************************************************************************/ package org.eclipse.cdt.core.dom.ast; +import org.eclipse.cdt.core.dom.IName; + /** * This class represents a name in the program that represents a semantic object * in the program. @@ -19,27 +22,20 @@ package org.eclipse.cdt.core.dom.ast; * * @author Doug Schaefer */ -public interface IASTName extends IASTNode { +public interface IASTName extends IASTNode, IName { /** * Constant sentinel. */ public static final IASTName[] EMPTY_NAME_ARRAY = new IASTName[0]; - /** - * Resolve the semantic object this name is referring to. - * - * @return IBinding binding - */ - public IBinding resolveBinding(); - /** * Get the semantic object attached to this name. May be null if this name * has not yet been semantically resolved (@see resolveBinding) * @return IBinding if it has been resolved, otherwise null */ public IBinding getBinding(); - + /** * Set the semantic object for this name to be the given binding * @param binding @@ -53,30 +49,4 @@ public interface IASTName extends IASTNode { * @return IBinding [] bindings that start with this name */ public IBinding[] resolvePrefix(); - - /** - * Return a char array representation of the name. - * - * @return ~ toString().toCharArray() - */ - public char[] toCharArray(); - - /** - * Is this name being used in the AST as the introduction of a declaration? - * @return boolean - */ - public boolean isDeclaration(); - - /** - * Is this name being used in the AST as a reference rather than a declaration? - * @return boolean - */ - - public boolean isReference(); - - /** - * Is this name being used in the AST as a reference rather than a declaration? - * @return boolean - */ - public boolean isDefinition(); } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTTranslationUnit.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTTranslationUnit.java index 0e9b39020b1..3582f16abe8 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTTranslationUnit.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTTranslationUnit.java @@ -7,9 +7,11 @@ * * Contributors: * IBM - Initial API and implementation + * Markus Schorn (Wind River Systems) *******************************************************************************/ package org.eclipse.cdt.core.dom.ast; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.IPDOM; import org.eclipse.cdt.core.model.ILanguage; import org.eclipse.cdt.core.parser.ParserLanguage; @@ -65,26 +67,48 @@ public interface IASTTranslationUnit extends IASTNode { /** * Returns the list of declarations in this translation unit for the given - * binding. The list contains the IASTName nodes that declare the binding. + * binding. The list contains the IName nodes that declare the binding. + * These may be part of the AST or are pulled in from the index. * * @param binding - * @return List of IASTName nodes for the binding's declaration + * @return Array of IName nodes for the binding's declaration */ - public IASTName[] getDeclarations(IBinding binding); + public IName[] getDeclarations(IBinding binding); - /** + /** + * Returns the list of declarations in this translation unit for the given + * binding. The list contains the IASTName nodes that declare the binding. + * These are part of the AST no declarations are pulled in from the index. + * + * @param binding + * @return Array of IASTName nodes for the binding's declaration + */ + public IASTName[] getDeclarationsInAST(IBinding binding); + + /** * Returns the array of definitions in this translation unit for the given binding. - * The array contains the IASTName nodes that define the binding. + * The array contains the IName nodes that define the binding. + * These may be part of the AST or are pulled in from the index. * * @param binding * @return the definition of the IBinding */ - public IASTName[] getDefinitions(IBinding binding); + public IName[] getDefinitions(IBinding binding); + + /** + * Returns the array of definitions in this translation unit for the given binding. + * The array contains the IASTName nodes that define the binding. + * These are part of the AST no definitions are pulled in from the index. + * + * @param binding + * @return Array of IASTName nodes for the binding's declaration + */ + public IASTName[] getDefinitionsInAST(IBinding binding); /** * Returns the list of references in this translation unit to the given - * binding. This list contains the IASTName nodes that represent a use of - * the binding. + * binding. This list contains the IName nodes that represent a use of + * the binding. They may be part of the AST or pulled in from the index. * * @param binding * @return List of IASTName nodes representing uses of the binding diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IScope.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IScope.java index cdff0251a35..1120d9dc010 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IScope.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IScope.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. + * Copyright (c) 2004, 2006 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -7,9 +7,12 @@ * * Contributors: * IBM - Initial API and implementation + * Markus Schorn (Wind River Systems) *******************************************************************************/ package org.eclipse.cdt.core.dom.ast; +import org.eclipse.cdt.core.dom.IName; + /** * @@ -18,11 +21,11 @@ package org.eclipse.cdt.core.dom.ast; public interface IScope { /** - * Get the IASTName for this scope, may be null + * Get the IName for this scope, may be null * @return * @throws DOMException */ - public IASTName getScopeName() throws DOMException; + public IName getScopeName() throws DOMException; /** * Scopes are arranged hierarchically. Lookups will generally @@ -42,14 +45,13 @@ public interface IScope { * @return List of IBinding */ public IBinding[] find(String name) throws DOMException; - + /** * Return the physical IASTNode that this scope was created for * @return */ public IASTNode getPhysicalNode() throws DOMException; - /** * The IScope serves as a mechanism for caching IASTNames and bindings to * speed up resolution. diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/index/IIndexName.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/index/IIndexName.java new file mode 100644 index 00000000000..6bfd93afb12 --- /dev/null +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/index/IIndexName.java @@ -0,0 +1,43 @@ +/******************************************************************************* + * Copyright (c) 2006 Wind River Systems, Inc. and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Markus Schorn - initial API and implementation + *******************************************************************************/ + +package org.eclipse.cdt.core.index; + +import org.eclipse.cdt.core.dom.IName; + + +/** + * Interface for all the names in the index. These constitute either a + * declaration or a reference. + * @since 4.0 + */ +public interface IIndexName extends IName { + + public static final IIndexName[] EMPTY_NAME_ARRAY = new IIndexName[0]; + + /** + * Returns the location of the file the name resides in. + * @since 4.0 + */ + public String getFileName(); + + /** + * Returns the character offset of the location of the name. + * @since 4.0 + */ + public int getNodeOffset(); + + /** + * Returns the length of the name. + * @since 4.0 + */ + public int getNodeLength(); +} diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ProblemBinding.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ProblemBinding.java index e0698a5406b..33ad9fa35e6 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ProblemBinding.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ProblemBinding.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. + * Copyright (c) 2004, 2006 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -7,6 +7,7 @@ * * Contributors: * IBM Corporation - initial API and implementation + * Markus Schorn (Wind River Systems) *******************************************************************************/ /* @@ -16,6 +17,7 @@ package org.eclipse.cdt.internal.core.dom.parser; import java.text.MessageFormat; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.ast.DOMException; import org.eclipse.cdt.core.dom.ast.IASTFileLocation; import org.eclipse.cdt.core.dom.ast.IASTName; @@ -140,7 +142,7 @@ public class ProblemBinding extends PlatformObject implements IProblemBinding, I /* (non-Javadoc) * @see org.eclipse.cdt.core.dom.ast.IScope#getScopeName() */ - public IASTName getScopeName() { + public IName getScopeName() { return null; } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTranslationUnit.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTranslationUnit.java index 749b784f0df..c3deaafebe8 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTranslationUnit.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTranslationUnit.java @@ -7,10 +7,12 @@ * * Contributors: * IBM Rational Software - Initial API and implementation + * Markus Schorn (Wind River Systems) *******************************************************************************/ package org.eclipse.cdt.internal.core.dom.parser.c; import org.eclipse.cdt.core.CCorePlugin; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.IPDOM; import org.eclipse.cdt.core.dom.IPDOMResolver; import org.eclipse.cdt.core.dom.ast.ASTVisitor; @@ -121,15 +123,8 @@ public class CASTTranslationUnit extends CASTNode implements * * @see org.eclipse.cdt.core.dom.ast.IASTTranslationUnit#getDeclarations(org.eclipse.cdt.core.dom.ast.IBinding) */ - public IASTName[] getDeclarations(IBinding binding) { - if( binding instanceof IMacroBinding ) - { - if( resolver == null ) - return EMPTY_NAME_ARRAY; - return resolver.getDeclarations( (IMacroBinding)binding ); - } - IASTName[] names = CVisitor.getDeclarations(this, binding); - + public IName[] getDeclarations(IBinding binding) { + IName[] names= getDeclarationsInAST(binding); if (names.length == 0 && pdom != null) { try { binding = ((PDOM)pdom).getLinkage(getLanguage()).adaptBinding(binding); @@ -143,26 +138,24 @@ public class CASTTranslationUnit extends CASTNode implements return names; } - + + public IASTName[] getDeclarationsInAST(IBinding binding) { + if( binding instanceof IMacroBinding ) + { + if( resolver == null ) + return EMPTY_NAME_ARRAY; + return resolver.getDeclarations( (IMacroBinding)binding ); + } + return CVisitor.getDeclarations(this, binding); + } + /* * (non-Javadoc) * * @see org.eclipse.cdt.core.dom.ast.IASTTranslationUnit#getDefinitions(org.eclipse.cdt.core.dom.ast.IBinding) */ - public IASTName[] getDefinitions(IBinding binding) { - if (binding instanceof IMacroBinding) { - if( resolver == null ) - return EMPTY_NAME_ARRAY; - return resolver.getDeclarations((IMacroBinding)binding); - } - - IASTName[] names = CVisitor.getDeclarations(this, binding); - for (int i = 0; i < names.length; i++) { - if (!names[i].isDefinition()) - names[i] = null; - } - names = (IASTName[])ArrayUtil.removeNulls(IASTName.class, names); - + public IName[] getDefinitions(IBinding binding) { + IName[] names= getDefinitionsInAST(binding); if (names.length == 0 && pdom != null) { try { binding = ((PDOM)pdom).getLinkage(getLanguage()).adaptBinding(binding); @@ -173,20 +166,34 @@ public class CASTTranslationUnit extends CASTNode implements return names; } } - return names; } + public IASTName[] getDefinitionsInAST(IBinding binding) { + if (binding instanceof IMacroBinding) { + if (resolver != null) { + return resolver.getDeclarations((IMacroBinding)binding); + } + return IASTName.EMPTY_NAME_ARRAY; + } + IName[] names = CVisitor.getDeclarations(this, binding); + for (int i = 0; i < names.length; i++) { + if (!names[i].isDefinition()) + names[i] = null; + } + return (IASTName[])ArrayUtil.removeNulls(IASTName.class, names); + } + /* * (non-Javadoc) * * @see org.eclipse.cdt.core.dom.ast.IASTTranslationUnit#getReferences(org.eclipse.cdt.core.dom.ast.IBinding) */ public IASTName[] getReferences(IBinding binding) { - if( binding instanceof IMacroBinding ) + if (binding instanceof IMacroBinding) { if( resolver == null ) - return EMPTY_NAME_ARRAY; + return EMPTY_NAME_ARRAY; return resolver.getReferences( (IMacroBinding)binding ); } return CVisitor.getReferences(this, binding); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CScope.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CScope.java index efa41b740fa..ba9e991c07d 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CScope.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CScope.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. + * Copyright (c) 2004, 2006 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -7,6 +7,7 @@ * * Contributors: * IBM Corporation - initial API and implementation + * Markus Schorn (Wind River Systems) *******************************************************************************/ /* @@ -14,6 +15,7 @@ */ package org.eclipse.cdt.internal.core.dom.parser.c; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.ast.ASTNodeProperty; import org.eclipse.cdt.core.dom.ast.DOMException; import org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier; @@ -192,7 +194,7 @@ public class CScope implements ICScope { /* (non-Javadoc) * @see org.eclipse.cdt.core.dom.ast.IScope#getScopeName() */ - public IASTName getScopeName() { + public IName getScopeName() { if( physicalNode instanceof IASTCompositeTypeSpecifier ){ return ((IASTCompositeTypeSpecifier) physicalNode).getName(); } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTranslationUnit.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTranslationUnit.java index c991da880c5..11cc8a73541 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTranslationUnit.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTranslationUnit.java @@ -7,10 +7,12 @@ * * Contributors: * IBM - Initial API and implementation + * Markus Schorn (Wind River Systems) *******************************************************************************/ package org.eclipse.cdt.internal.core.dom.parser.cpp; import org.eclipse.cdt.core.CCorePlugin; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.IPDOM; import org.eclipse.cdt.core.dom.IPDOMResolver; import org.eclipse.cdt.core.dom.ast.ASTVisitor; @@ -175,19 +177,18 @@ public class CPPASTTranslationUnit extends CPPASTNode implements } catch (DOMException de) {} } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTTranslationUnit#getDeclarations(org.eclipse.cdt.core.dom.ast.IBinding) - */ - public IASTName[] getDeclarations(IBinding b) { + public IASTName[] getDeclarationsInAST(IBinding b) { if( b instanceof IMacroBinding ) { if( resolver == null ) return EMPTY_NAME_ARRAY; return resolver.getDeclarations( (IMacroBinding)b ); } - IASTName[] names = CPPVisitor.getDeclarations( this, b ); + return CPPVisitor.getDeclarations( this, b ); + } + + public IName[] getDeclarations(IBinding b) { + IName[] names = getDeclarationsInAST(b); if (names.length == 0 && pdom != null) { try { b = ((PDOM)pdom).getLinkage(getLanguage()).adaptBinding(b); @@ -202,25 +203,23 @@ public class CPPASTTranslationUnit extends CPPASTNode implements return names; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTTranslationUnit#getDefinitions(org.eclipse.cdt.core.dom.ast.IBinding) - */ - public IASTName[] getDefinitions(IBinding binding) { + public IASTName[] getDefinitionsInAST(IBinding binding) { if (binding instanceof IMacroBinding) { if( resolver == null ) return EMPTY_NAME_ARRAY; return resolver.getDeclarations((IMacroBinding)binding); } - IASTName[] names = CPPVisitor.getDeclarations(this, binding); + IASTName[] names = CPPVisitor.getDeclarations(this, binding); for (int i = 0; i < names.length; i++) { if (!names[i].isDefinition()) names[i] = null; } - names = (IASTName[])ArrayUtil.removeNulls(IASTName.class, names); - + return (IASTName[])ArrayUtil.removeNulls(IASTName.class, names); + } + + public IName[] getDefinitions(IBinding binding) { + IName[] names = getDefinitionsInAST(binding); if (names.length == 0 && pdom != null) { try { binding = ((PDOM)pdom).getLinkage(getLanguage()).adaptBinding(binding); @@ -234,7 +233,7 @@ public class CPPASTTranslationUnit extends CPPASTNode implements return names; } - + /* * (non-Javadoc) * @@ -244,10 +243,10 @@ public class CPPASTTranslationUnit extends CPPASTNode implements if( b instanceof IMacroBinding ) { if( resolver == null ) - return EMPTY_NAME_ARRAY; + return EMPTY_NAME_ARRAY; return resolver.getReferences( (IMacroBinding)b ); } - return CPPVisitor.getReferences(this, b); + return CPPVisitor.getReferences(this, b); } /* diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPBlockScope.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPBlockScope.java index 0e00140a7e8..4629c8c2e62 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPBlockScope.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPBlockScope.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. + * Copyright (c) 2004, 2006 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -7,15 +7,17 @@ * * Contributors: * IBM Corporation - initial API and implementation + * Markus Schorn (Wind River Systems) *******************************************************************************/ + /* * Created on Nov 29, 2004 */ package org.eclipse.cdt.internal.core.dom.parser.cpp; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.ast.IASTCompoundStatement; import org.eclipse.cdt.core.dom.ast.IASTFunctionDefinition; -import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IASTNode; import org.eclipse.cdt.core.dom.ast.cpp.ICPPBlockScope; @@ -27,7 +29,7 @@ public class CPPBlockScope extends CPPNamespaceScope implements ICPPBlockScope { super( physicalNode ); } - public IASTName getScopeName(){ + public IName getScopeName(){ IASTNode node = getPhysicalNode(); if( node instanceof IASTCompoundStatement && node.getParent() instanceof IASTFunctionDefinition ){ return ((IASTFunctionDefinition)node.getParent()).getDeclarator().getName(); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassInstanceScope.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassInstanceScope.java index 5b46146ad84..a01eaa67d0e 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassInstanceScope.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassInstanceScope.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005 IBM Corporation and others. + * Copyright (c) 2005, 2006 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -7,12 +7,14 @@ * * Contributors: * IBM - Initial API and implementation + * Markus Schorn (Wind River Systems) *******************************************************************************/ /* * Created on Mar 28, 2005 */ package org.eclipse.cdt.internal.core.dom.parser.cpp; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.ast.DOMException; import org.eclipse.cdt.core.dom.ast.IASTDeclarator; import org.eclipse.cdt.core.dom.ast.IASTName; @@ -151,7 +153,7 @@ public class CPPClassInstanceScope implements ICPPClassScope { /* (non-Javadoc) * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPScope#getScopeName() */ - public IASTName getScopeName() { + public IName getScopeName() { return (IASTName) ((ICPPInternalBinding)instance).getDefinition(); } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassScope.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassScope.java index 4923170762d..c6c10743fe6 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassScope.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassScope.java @@ -7,12 +7,14 @@ * * Contributors: * IBM Corporation - initial API and implementation + * Markus Schorn (Wind River Systems) *******************************************************************************/ /* * Created on Nov 29, 2004 */ package org.eclipse.cdt.internal.core.dom.parser.cpp; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.ast.DOMException; import org.eclipse.cdt.core.dom.ast.IASTArrayDeclarator; import org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier; @@ -107,7 +109,7 @@ public class CPPClassScope extends CPPScope implements ICPPClassScope { //copy assignment operator: A& operator = ( const A & ) IType refType = new CPPReferenceType( clsType ); - m = new CPPImplicitMethod( this, ICPPASTOperatorName.OPERATOR_ASSIGN, refType, ps ); //$NON-NLS-1$ + m = new CPPImplicitMethod( this, ICPPASTOperatorName.OPERATOR_ASSIGN, refType, ps ); implicits[2] = m; addBinding( m ); @@ -343,7 +345,7 @@ public class CPPClassScope extends CPPScope implements ICPPClassScope { /* (non-Javadoc) * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPScope#getScopeName() */ - public IASTName getScopeName() { + public IName getScopeName() { IASTNode node = getPhysicalNode(); if( node instanceof ICPPASTCompositeTypeSpecifier ){ return ((ICPPASTCompositeTypeSpecifier)node).getName(); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunctionScope.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunctionScope.java index 32aefc066bf..4e393bae69e 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunctionScope.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunctionScope.java @@ -7,12 +7,14 @@ * * Contributors: * IBM Corporation - initial API and implementation + * Markus Schorn (Wind River Systems) *******************************************************************************/ /* * Created on Dec 1, 2004 */ package org.eclipse.cdt.internal.core.dom.parser.cpp; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.ast.DOMException; import org.eclipse.cdt.core.dom.ast.IASTCompoundStatement; import org.eclipse.cdt.core.dom.ast.IASTFunctionDeclarator; @@ -121,7 +123,7 @@ public class CPPFunctionScope extends CPPScope implements ICPPFunctionScope { /* (non-Javadoc) * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPScope#getScopeName() */ - public IASTName getScopeName() { + public IName getScopeName() { IASTNode node = getPhysicalNode(); if( node instanceof ICPPASTFunctionDeclarator ){ return ((ICPPASTFunctionDeclarator)node).getName(); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPNamespaceScope.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPNamespaceScope.java index 4279bf0f814..de247711a25 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPNamespaceScope.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPNamespaceScope.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. + * Copyright (c) 2004, 2006 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -7,13 +7,14 @@ * * Contributors: * IBM Corporation - initial API and implementation + * Markus Schorn (Wind River Systems) *******************************************************************************/ /* * Created on Nov 29, 2004 */ package org.eclipse.cdt.internal.core.dom.parser.cpp; -import org.eclipse.cdt.core.dom.ast.IASTName; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.ast.IASTNode; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamespaceDefinition; import org.eclipse.cdt.core.dom.ast.cpp.ICPPNamespaceScope; @@ -45,7 +46,7 @@ public class CPPNamespaceScope extends CPPScope implements ICPPNamespaceScope{ /* (non-Javadoc) * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPScope#getScopeName() */ - public IASTName getScopeName() { + public IName getScopeName() { IASTNode node = getPhysicalNode(); if( node instanceof ICPPASTNamespaceDefinition ){ return ((ICPPASTNamespaceDefinition)node).getName(); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplateScope.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplateScope.java index db3dc091f8d..e1ea05489e5 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplateScope.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplateScope.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005 IBM Corporation and others. + * Copyright (c) 2005, 2006 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -7,12 +7,14 @@ * * Contributors: * IBM - Initial API and implementation + * Markus Schorn (Wind River Systems) *******************************************************************************/ /* * Created on Mar 11, 2005 */ package org.eclipse.cdt.internal.core.dom.parser.cpp; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.ast.DOMException; import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IASTNode; @@ -57,7 +59,7 @@ public class CPPTemplateScope extends CPPScope implements ICPPTemplateScope { /* (non-Javadoc) * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPScope#getScopeName() */ - public IASTName getScopeName() { + public IName getScopeName() { // TODO Auto-generated method stub return null; } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPUnknownScope.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPUnknownScope.java index 8ad142ea6ad..79a065ee061 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPUnknownScope.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPUnknownScope.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. + * Copyright (c) 2004, 2006 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -7,6 +7,7 @@ * * Contributors: * IBM Corporation - initial API and implementation + * Markus Schorn (Wind River Systems) *******************************************************************************/ /* @@ -14,6 +15,7 @@ */ package org.eclipse.cdt.internal.core.dom.parser.cpp; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.ast.DOMException; import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IASTNode; @@ -41,7 +43,7 @@ public class CPPUnknownScope implements ICPPScope { /* (non-Javadoc) * @see org.eclipse.cdt.core.dom.ast.IScope#getScopeName() */ - public IASTName getScopeName() { + public IName getScopeName() { return scopeName; } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPVisitor.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPVisitor.java index b971c56fd4f..1415fad55c8 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPVisitor.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPVisitor.java @@ -7,6 +7,7 @@ * * Contributors: * IBM Corporation - initial API and implementation + * Markus Schorn (Wind River Systems) *******************************************************************************/ /* * Created on Nov 29, 2004 @@ -14,6 +15,7 @@ package org.eclipse.cdt.internal.core.dom.parser.cpp; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.ast.ASTNodeProperty; import org.eclipse.cdt.core.dom.ast.DOMException; import org.eclipse.cdt.core.dom.ast.IASTArrayDeclarator; @@ -2009,7 +2011,7 @@ public class CPPVisitor { if( scope instanceof ICPPTemplateScope ) scope = (ICPPScope) scope.getParent(); - IASTName n = scope.getScopeName(); + IName n = scope.getScopeName(); if( n == null ) break; if( scope instanceof ICPPBlockScope || scope instanceof ICPPFunctionScope ) @@ -2039,7 +2041,7 @@ public class CPPVisitor { if( scope instanceof ICPPTemplateScope ) scope = (ICPPScope) scope.getParent(); - IASTName n = scope.getScopeName(); + IName n = scope.getScopeName(); if( n == null ) break; if( scope instanceof ICPPBlockScope || scope instanceof ICPPFunctionScope ) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOM.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOM.java index 6b997d601ca..6e6165cb00e 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOM.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOM.java @@ -7,6 +7,7 @@ * * Contributors: * QNX - Initial API and implementation + * Markus Schorn (Wind River Systems) *******************************************************************************/ package org.eclipse.cdt.internal.core.pdom; @@ -21,6 +22,7 @@ import java.util.regex.Pattern; import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.dom.ICodeReaderFactory; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.IPDOM; import org.eclipse.cdt.core.dom.IPDOMNode; import org.eclipse.cdt.core.dom.IPDOMResolver; @@ -52,8 +54,7 @@ import org.eclipse.core.runtime.Status; * * @author Doug Schaefer */ -public class PDOM extends PlatformObject - implements IPDOM, IPDOMResolver, IPDOMWriter { +public class PDOM extends PlatformObject implements IPDOM, IPDOMResolver, IPDOMWriter { private Database db; @@ -201,7 +202,7 @@ public class PDOM extends PlatformObject return new PDOMCodeReaderFactory(this, root); } - public IASTName[] getDeclarations(IBinding binding) throws CoreException { + public IName[] getDeclarations(IBinding binding) throws CoreException { if (binding instanceof PDOMBinding) { List names = new ArrayList(); for (PDOMName name = ((PDOMBinding)binding).getFirstDeclaration(); @@ -213,33 +214,33 @@ public class PDOM extends PlatformObject name != null; name = name.getNextInBinding()) names.add(name); - return (IASTName[])names.toArray(new IASTName[names.size()]); + return (IName[])names.toArray(new IName[names.size()]); } - return new IASTName[0]; + return IName.EMPTY_NAME_ARRAY; } - public IASTName[] getDefinitions(IBinding binding) throws CoreException { + public IName[] getDefinitions(IBinding binding) throws CoreException { if (binding instanceof PDOMBinding) { List names = new ArrayList(); for (PDOMName name = ((PDOMBinding)binding).getFirstDefinition(); name != null; name = name.getNextInBinding()) names.add(name); - return (IASTName[])names.toArray(new IASTName[names.size()]); + return (IName[])names.toArray(new IName[names.size()]); } - return new IASTName[0]; + return IName.EMPTY_NAME_ARRAY; } - public IASTName[] getReferences(IBinding binding) throws CoreException { + public IName[] getReferences(IBinding binding) throws CoreException { if (binding instanceof PDOMBinding) { List names = new ArrayList(); for (PDOMName name = ((PDOMBinding)binding).getFirstReference(); name != null; name = name.getNextInBinding()) names.add(name); - return (IASTName[])names.toArray(new IASTName[names.size()]); + return (IName[])names.toArray(new IName[names.size()]); } - return new IASTName[0]; + return IName.EMPTY_NAME_ARRAY; } public IBinding resolveBinding(IASTName name) { @@ -377,7 +378,7 @@ public class PDOM extends PlatformObject if (record == 0) return null; else { - PDOMNode node = PDOMLinkage.getLinkage(this, record).getNode(record); + PDOMNode node = PDOMNode.getLinkage(this, record).getNode(record); return node instanceof PDOMBinding ? (PDOMBinding)node : null; } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/PDOMName.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/PDOMName.java index 04cb856d2c5..32ca488b291 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/PDOMName.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/PDOMName.java @@ -7,18 +7,15 @@ * * Contributors: * QNX - Initial API and implementation + * Markus Schorn (Wind River Systems) *******************************************************************************/ package org.eclipse.cdt.internal.core.pdom.dom; import org.eclipse.cdt.core.CCorePlugin; -import org.eclipse.cdt.core.dom.ast.ASTNodeProperty; -import org.eclipse.cdt.core.dom.ast.ASTVisitor; import org.eclipse.cdt.core.dom.ast.IASTFileLocation; import org.eclipse.cdt.core.dom.ast.IASTName; -import org.eclipse.cdt.core.dom.ast.IASTNode; -import org.eclipse.cdt.core.dom.ast.IASTNodeLocation; -import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; import org.eclipse.cdt.core.dom.ast.IBinding; +import org.eclipse.cdt.core.index.IIndexName; import org.eclipse.cdt.internal.core.pdom.PDOM; import org.eclipse.cdt.internal.core.pdom.db.Database; import org.eclipse.core.runtime.CoreException; @@ -27,7 +24,7 @@ import org.eclipse.core.runtime.CoreException; * @author Doug Schaefer * */ -public class PDOMName implements IASTName, IASTFileLocation { +public class PDOMName implements IIndexName, IASTFileLocation { private final PDOM pdom; private final int record; @@ -175,18 +172,6 @@ public class PDOMName implements IASTName, IASTFileLocation { } } - public IBinding getBinding() { - throw new PDOMNotImplementedError(); - } - - public void setBinding(IBinding binding) { - throw new PDOMNotImplementedError(); - } - - public IBinding[] resolvePrefix() { - throw new PDOMNotImplementedError(); - } - public char[] toCharArray() { try { Database db = pdom.getDB(); @@ -233,51 +218,10 @@ public class PDOMName implements IASTName, IASTFileLocation { } } - public IASTTranslationUnit getTranslationUnit() { - // TODO Bug 115367 this is dumb - only need for validation checks - return new PDOMTranslationUnit(); - } - - public IASTNodeLocation[] getNodeLocations() { - throw new PDOMNotImplementedError(); - } - public IASTFileLocation getFileLocation() { return this; } - public String getContainingFilename() { - throw new PDOMNotImplementedError(); - } - - public IASTNode getParent() { - throw new PDOMNotImplementedError(); - } - - public void setParent(IASTNode node) { - throw new PDOMNotImplementedError(); - } - - public ASTNodeProperty getPropertyInParent() { - throw new PDOMNotImplementedError(); - } - - public void setPropertyInParent(ASTNodeProperty property) { - throw new PDOMNotImplementedError(); - } - - public boolean accept(ASTVisitor visitor) { - throw new PDOMNotImplementedError(); - } - - public String getRawSignature() { - throw new PDOMNotImplementedError(); - } - - public int getEndingLineNumber() { - throw new PDOMNotImplementedError(); - } - public String getFileName() { try { PDOMFile file = getFile(); @@ -289,11 +233,15 @@ public class PDOMName implements IASTName, IASTFileLocation { } public int getStartingLineNumber() { - throw new PDOMNotImplementedError(); + return 0; + } + + public int getEndingLineNumber() { + return 0; } public IASTFileLocation asFileLocation() { - throw new PDOMNotImplementedError(); + return this; } public int getNodeLength() { diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/PDOMTranslationUnit.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/PDOMTranslationUnit.java deleted file mode 100644 index 578da1283fe..00000000000 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/PDOMTranslationUnit.java +++ /dev/null @@ -1,164 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2006 QNX Software Systems and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * QNX - Initial API and implementation - *******************************************************************************/ -package org.eclipse.cdt.internal.core.pdom.dom; - -import org.eclipse.cdt.core.dom.IPDOM; -import org.eclipse.cdt.core.dom.ast.ASTNodeProperty; -import org.eclipse.cdt.core.dom.ast.ASTVisitor; -import org.eclipse.cdt.core.dom.ast.IASTDeclaration; -import org.eclipse.cdt.core.dom.ast.IASTFileLocation; -import org.eclipse.cdt.core.dom.ast.IASTName; -import org.eclipse.cdt.core.dom.ast.IASTNode; -import org.eclipse.cdt.core.dom.ast.IASTNodeLocation; -import org.eclipse.cdt.core.dom.ast.IASTPreprocessorIncludeStatement; -import org.eclipse.cdt.core.dom.ast.IASTPreprocessorMacroDefinition; -import org.eclipse.cdt.core.dom.ast.IASTPreprocessorStatement; -import org.eclipse.cdt.core.dom.ast.IASTProblem; -import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; -import org.eclipse.cdt.core.dom.ast.IBinding; -import org.eclipse.cdt.core.dom.ast.IScope; -import org.eclipse.cdt.core.model.ILanguage; -import org.eclipse.cdt.core.parser.ParserLanguage; - -/** - * @author Doug Schaefer - * - * This is really a dummy translation unit that is necessary for names - * to be valid. - */ -public class PDOMTranslationUnit implements IASTTranslationUnit { - - public IASTDeclaration[] getDeclarations() { - throw new PDOMNotImplementedError(); - } - - public void addDeclaration(IASTDeclaration declaration) { - throw new PDOMNotImplementedError(); - } - - public IScope getScope() { - throw new PDOMNotImplementedError(); - } - - public IASTName[] getDeclarations(IBinding binding) { - throw new PDOMNotImplementedError(); - } - - public IASTName[] getDefinitions(IBinding binding) { - throw new PDOMNotImplementedError(); - } - - public IASTName[] getReferences(IBinding binding) { - throw new PDOMNotImplementedError(); - } - - public IASTNodeLocation[] getLocationInfo(int offset, int length) { - throw new PDOMNotImplementedError(); - } - - public IASTNode selectNodeForLocation(String path, int offset, int length) { - throw new PDOMNotImplementedError(); - } - - public IASTPreprocessorMacroDefinition[] getMacroDefinitions() { - throw new PDOMNotImplementedError(); - } - - public IASTPreprocessorIncludeStatement[] getIncludeDirectives() { - throw new PDOMNotImplementedError(); - } - - public IASTPreprocessorStatement[] getAllPreprocessorStatements() { - throw new PDOMNotImplementedError(); - } - - public IASTProblem[] getPreprocessorProblems() { - throw new PDOMNotImplementedError(); - } - - public String getUnpreprocessedSignature(IASTNodeLocation[] locations) { - throw new PDOMNotImplementedError(); - } - - public String getFilePath() { - throw new PDOMNotImplementedError(); - } - - public IASTFileLocation flattenLocationsToFile( - IASTNodeLocation[] nodeLocations) { - throw new PDOMNotImplementedError(); - } - - public IDependencyTree getDependencyTree() { - throw new PDOMNotImplementedError(); - } - - public String getContainingFilename(int offset) { - throw new PDOMNotImplementedError(); - } - - public ParserLanguage getParserLanguage() { - throw new PDOMNotImplementedError(); - } - - public IPDOM getIndex() { - throw new PDOMNotImplementedError(); - } - - public void setIndex(IPDOM pdom) { - throw new PDOMNotImplementedError(); - } - - public IASTTranslationUnit getTranslationUnit() { - throw new PDOMNotImplementedError(); - } - - public IASTNodeLocation[] getNodeLocations() { - throw new PDOMNotImplementedError(); - } - - public IASTFileLocation getFileLocation() { - throw new PDOMNotImplementedError(); - } - - public String getContainingFilename() { - throw new PDOMNotImplementedError(); - } - - public IASTNode getParent() { - throw new PDOMNotImplementedError(); - } - - public void setParent(IASTNode node) { - throw new PDOMNotImplementedError(); - } - - public ASTNodeProperty getPropertyInParent() { - throw new PDOMNotImplementedError(); - } - - public void setPropertyInParent(ASTNodeProperty property) { - throw new PDOMNotImplementedError(); - } - - public boolean accept(ASTVisitor visitor) { - throw new PDOMNotImplementedError(); - } - - public String getRawSignature() { - throw new PDOMNotImplementedError(); - } - - public ILanguage getLanguage() { - throw new PDOMNotImplementedError(); - } - -} diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/c/PDOMCLinkage.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/c/PDOMCLinkage.java index 4d1b59228b6..2146dc3fe5e 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/c/PDOMCLinkage.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/c/PDOMCLinkage.java @@ -12,6 +12,7 @@ package org.eclipse.cdt.internal.core.pdom.dom.c; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.IPDOMNode; import org.eclipse.cdt.core.dom.IPDOMVisitor; import org.eclipse.cdt.core.dom.ast.IASTCompoundStatement; @@ -86,7 +87,7 @@ class PDOMCLinkage extends PDOMLinkage { else if (scopeNode instanceof IASTTranslationUnit) return this; else { - IASTName scopeName = scope.getScopeName(); + IName scopeName = scope.getScopeName(); if (scopeName != null) { IBinding scopeBinding = scopeName.resolveBinding(); PDOMBinding scopePDOMBinding = adaptBinding(scopeBinding); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassType.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassType.java index 75b9800fbc7..50096a534f4 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassType.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassType.java @@ -7,6 +7,7 @@ * * Contributors: * QNX - Initial API and implementation + * Markus Schorn (Wind River Systems) *******************************************************************************/ package org.eclipse.cdt.internal.core.pdom.dom.cpp; @@ -17,6 +18,7 @@ import java.util.List; import java.util.Set; import org.eclipse.cdt.core.CCorePlugin; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.IPDOMNode; import org.eclipse.cdt.core.dom.IPDOMVisitor; import org.eclipse.cdt.core.dom.ast.DOMException; @@ -39,6 +41,7 @@ import org.eclipse.cdt.internal.core.pdom.dom.IPDOMMemberOwner; import org.eclipse.cdt.internal.core.pdom.dom.PDOMBinding; import org.eclipse.cdt.internal.core.pdom.dom.PDOMCPPBinding; import org.eclipse.cdt.internal.core.pdom.dom.PDOMLinkage; +import org.eclipse.cdt.internal.core.pdom.dom.PDOMName; import org.eclipse.cdt.internal.core.pdom.dom.PDOMNode; import org.eclipse.cdt.internal.core.pdom.dom.PDOMNotImplementedError; import org.eclipse.core.runtime.CoreException; @@ -322,9 +325,9 @@ class PDOMCPPClassType extends PDOMCPPBinding implements ICPPClassType, throw new PDOMNotImplementedError(); } - public IASTName getScopeName() throws DOMException { + public IName getScopeName() throws DOMException { try { - IASTName name = getFirstDefinition(); + PDOMName name = getFirstDefinition(); if (name == null) name = getFirstDefinition(); return name; diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java index 0dc2c95113d..06682ce0a3e 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java @@ -12,6 +12,7 @@ package org.eclipse.cdt.internal.core.pdom.dom.cpp; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.IPDOMNode; import org.eclipse.cdt.core.dom.IPDOMVisitor; import org.eclipse.cdt.core.dom.ast.IASTFunctionCallExpression; @@ -100,7 +101,7 @@ class PDOMCPPLinkage extends PDOMLinkage { PDOMNode parent = this; IScope scope = binding.getScope(); if (scope != null) { - IASTName scopeName = scope.getScopeName(); + IName scopeName = scope.getScopeName(); if (scopeName != null) { IBinding scopeBinding = scopeName.resolveBinding(); PDOMBinding scopePDOMBinding = adaptBinding(scopeBinding); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPNamespace.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPNamespace.java index 4cf53634918..d8e26616a55 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPNamespace.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPNamespace.java @@ -7,11 +7,13 @@ * * Contributors: * QNX - Initial API and implementation + * Markus Schorn (Wind River Systems) *******************************************************************************/ package org.eclipse.cdt.internal.core.pdom.dom.cpp; import org.eclipse.cdt.core.CCorePlugin; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.IPDOMVisitor; import org.eclipse.cdt.core.dom.ast.DOMException; import org.eclipse.cdt.core.dom.ast.IASTFunctionCallExpression; @@ -201,7 +203,7 @@ class PDOMCPPNamespace extends PDOMCPPBinding throw new PDOMNotImplementedError(); } - public IASTName getScopeName() throws DOMException { + public IName getScopeName() throws DOMException { throw new PDOMNotImplementedError(); } diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/AddIncludeOnSelectionAction.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/AddIncludeOnSelectionAction.java index 2a1e18c8d0d..549bc9816d3 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/AddIncludeOnSelectionAction.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/AddIncludeOnSelectionAction.java @@ -8,6 +8,7 @@ * Contributors: * IBM Corporation - initial API and implementation * QNX Software Systems + * Markus Schorn (Wind River Systems) *******************************************************************************/ package org.eclipse.cdt.internal.ui.editor; @@ -44,12 +45,14 @@ import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.browser.IQualifiedTypeName; import org.eclipse.cdt.core.browser.PathUtil; import org.eclipse.cdt.core.browser.QualifiedTypeName; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.IPDOMManager; import org.eclipse.cdt.core.dom.ast.IBinding; import org.eclipse.cdt.core.dom.ast.IEnumeration; import org.eclipse.cdt.core.dom.ast.IFunction; import org.eclipse.cdt.core.dom.ast.ITypedef; import org.eclipse.cdt.core.dom.ast.cpp.ICPPBinding; +import org.eclipse.cdt.core.index.IIndexName; import org.eclipse.cdt.core.model.CModelException; import org.eclipse.cdt.core.model.CoreModel; import org.eclipse.cdt.core.model.ICProject; @@ -65,7 +68,6 @@ import org.eclipse.cdt.ui.text.ICHelpInvocationContext; import org.eclipse.cdt.internal.core.pdom.PDOM; import org.eclipse.cdt.internal.core.pdom.dom.IPDOMMemberOwner; import org.eclipse.cdt.internal.core.pdom.dom.PDOMBinding; -import org.eclipse.cdt.internal.core.pdom.dom.PDOMName; import org.eclipse.cdt.internal.core.pdom.dom.PDOMNode; import org.eclipse.cdt.internal.ui.CHelpProviderManager; @@ -164,9 +166,9 @@ public class AddIncludeOnSelectionAction extends Action implements IUpdate { */ private class DisplayName extends Object { - private PDOMName name; + private IIndexName name; - public DisplayName(PDOMName name) { + public DisplayName(IIndexName name) { this.name = name; } @@ -186,7 +188,7 @@ public class AddIncludeOnSelectionAction extends Action implements IUpdate { } } - public PDOMName getPDOMName() + public IIndexName getPDOMName() { return name; } @@ -268,7 +270,7 @@ public class AddIncludeOnSelectionAction extends Action implements IUpdate { cProjectsToSearch.add(cProj); //current project Pattern pattern = Pattern.compile(name); - List pdomBindings = new ArrayList(); + List pdomNames = new ArrayList(); //search the projects and get name matching bindings for (int n = 0; n < cProjectsToSearch.size(); n++) { @@ -278,38 +280,25 @@ public class AddIncludeOnSelectionAction extends Action implements IUpdate { for (int i = 0; i < bindings.length; ++i) { PDOMBinding binding = (PDOMBinding)bindings[i]; PDOMBinding pdomBinding = pdom.getLinkage(getTranslationUnit().getLanguage()).adaptBinding(binding); - pdomBindings.add(pdomBinding); + + IName[] defs= null; + if (pdomBinding instanceof IPDOMMemberOwner //class or struct + || pdomBinding instanceof IEnumeration) + { + defs= pdom.getDefinitions(pdomBinding); + } + else if (pdomBinding instanceof ITypedef || pdomBinding instanceof IFunction) + { + defs= pdom.getDeclarations(pdomBinding); + } + if (defs != null) { + for (int j = 0; j < defs.length; j++) { + pdomNames.add(new DisplayName((IIndexName)defs[j])); + } + } } } - - List pdomNames = new ArrayList(); - - //get all the declarations/definitions of the pdomBindings found - for (int i = 0; i < pdomBindings.size(); ++i) - { - PDOMBinding pdomBinding = (PDOMBinding) pdomBindings.get(i); - - if (pdomBinding instanceof IPDOMMemberOwner //class or struct - || pdomBinding instanceof IEnumeration) - { - PDOMName currentDef = pdomBinding.getFirstDefinition(); - while(currentDef != null) //get all the definitions of the file to include - { - pdomNames.add(new DisplayName(currentDef)); - currentDef = currentDef.getNextInBinding(); - } - } - if (pdomBinding instanceof ITypedef || pdomBinding instanceof IFunction) - { - PDOMName currentDec = pdomBinding.getFirstDeclaration(); - while(currentDec != null) //get all the declarations of the file to include - { - pdomNames.add(new DisplayName(currentDec)); - currentDec = currentDec.getNextInBinding(); - } - } - } - + if (pdomNames.size() > 1) { ElementListSelectionDialog dialog= new ElementListSelectionDialog(getShell(), new TypeInfoLabelProvider(TypeInfoLabelProvider.SHOW_TYPE_ONLY)); diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/missingapi/CIndexQueries.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/missingapi/CIndexQueries.java index b6219986e88..fd9eea120a7 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/missingapi/CIndexQueries.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/missingapi/CIndexQueries.java @@ -27,6 +27,7 @@ import org.eclipse.jface.text.Region; import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.IPositionConverter; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.IPDOM; import org.eclipse.cdt.core.dom.ast.IASTFileLocation; import org.eclipse.cdt.core.dom.ast.IASTName; @@ -36,6 +37,7 @@ import org.eclipse.cdt.core.dom.ast.IEnumerator; import org.eclipse.cdt.core.dom.ast.IFunction; import org.eclipse.cdt.core.dom.ast.IVariable; import org.eclipse.cdt.core.dom.ast.c.ICExternalBinding; +import org.eclipse.cdt.core.index.IIndexName; import org.eclipse.cdt.core.model.CModelException; import org.eclipse.cdt.core.model.ICElement; import org.eclipse.cdt.core.model.ICProject; @@ -50,7 +52,6 @@ import org.eclipse.cdt.internal.core.pdom.PDOM; import org.eclipse.cdt.internal.core.pdom.dom.PDOMFile; import org.eclipse.cdt.internal.core.pdom.dom.PDOMInclude; import org.eclipse.cdt.internal.core.pdom.dom.PDOMLinkage; -import org.eclipse.cdt.internal.core.pdom.dom.PDOMName; import org.eclipse.cdt.internal.corext.util.CModelUtil; /** @@ -289,9 +290,9 @@ public class CIndexQueries { try { IBinding binding= getPDOMBinding(pdom, name); if (binding != null) { - IASTName[] names= pdom.getReferences(binding); + IName[] names= pdom.getReferences(binding); for (int i = 0; i < names.length; i++) { - IASTName rname = names[i]; + IName rname = names[i]; ITranslationUnit tu= getTranslationUnit(project, rname); CIndexReference ref= new CIndexReference(tu, rname); ICElement elem = findCalledBy(ref); @@ -367,7 +368,7 @@ public class CIndexQueries { } - private ITranslationUnit getTranslationUnit(ICProject cproject, IASTName name) { + private ITranslationUnit getTranslationUnit(ICProject cproject, IName name) { IPath path= Path.fromOSString(name.getFileLocation().getFileName()); try { return CModelUtil.findTranslationUnitForLocation(path, cproject); @@ -475,11 +476,11 @@ public class CIndexQueries { return EMPTY_ELEMENTS; } - private ICElement[] getCElementsForNames(ICProject project, IASTName[] defs) { + private ICElement[] getCElementsForNames(ICProject project, IName[] defs) { if (defs != null && defs.length > 0) { HashSet result= new HashSet(defs.length); for (int i = 0; i < defs.length; i++) { - IASTName defName = defs[i]; + IName defName = defs[i]; assert !defName.isReference(); ICElement elem= getCElementForName(project, defName); if (elem != null) { @@ -491,13 +492,13 @@ public class CIndexQueries { return EMPTY_ELEMENTS; } - private ICElement getCElementForName(ICProject project, IASTName declName) { + private ICElement getCElementForName(ICProject project, IName declName) { assert !declName.isReference(); ITranslationUnit tu= getTranslationUnit(project, declName); if (tu != null) { IRegion region= null; - if (declName instanceof PDOMName) { - PDOMName pname= (PDOMName) declName; + if (declName instanceof IIndexName) { + IIndexName pname= (IIndexName) declName; region= new Region(pname.getNodeOffset(), pname.getNodeLength()); // mstodo use correct timestamp // PDOMFile file= pname.getFile(); @@ -599,10 +600,10 @@ public class CIndexQueries { return null; } - private ICElement getFirstCElementForNames(ICProject project, IASTName[] defs) { + private ICElement getFirstCElementForNames(ICProject project, IName[] defs) { if (defs != null) { for (int i = 0; i < defs.length; i++) { - IASTName defName = defs[i]; + IName defName = defs[i]; ICElement elem= getCElementForName(project, defName); if (elem != null) { return elem; diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/missingapi/CIndexReference.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/missingapi/CIndexReference.java index 242380ae37f..3b7d7067179 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/missingapi/CIndexReference.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/missingapi/CIndexReference.java @@ -13,7 +13,7 @@ package org.eclipse.cdt.internal.ui.missingapi; import java.util.Comparator; -import org.eclipse.cdt.core.dom.ast.IASTName; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.model.ITranslationUnit; public class CIndexReference { @@ -28,7 +28,7 @@ public class CIndexReference { private int fLength; private ITranslationUnit fTranslationUnit; - public CIndexReference(ITranslationUnit tu, IASTName name) { + public CIndexReference(ITranslationUnit tu, IName name) { fTranslationUnit= tu; fOffset= name.getFileLocation().getNodeOffset(); fLength= name.getFileLocation().getNodeLength(); diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/OpenDeclarationsAction.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/OpenDeclarationsAction.java index 1f988ef52d8..ba3e31e85e9 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/OpenDeclarationsAction.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/OpenDeclarationsAction.java @@ -12,15 +12,6 @@ package org.eclipse.cdt.internal.ui.search.actions; -import org.eclipse.cdt.core.dom.ast.IASTName; -import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; -import org.eclipse.cdt.core.dom.ast.IBinding; -import org.eclipse.cdt.core.dom.ast.IProblemBinding; -import org.eclipse.cdt.core.model.IWorkingCopy; -import org.eclipse.cdt.internal.core.pdom.dom.PDOMBinding; -import org.eclipse.cdt.internal.ui.editor.CEditor; -import org.eclipse.cdt.internal.ui.editor.CEditorMessages; -import org.eclipse.cdt.ui.CUIPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; @@ -30,6 +21,19 @@ import org.eclipse.core.runtime.jobs.Job; import org.eclipse.jface.text.ITextSelection; import org.eclipse.swt.widgets.Display; +import org.eclipse.cdt.core.dom.IName; +import org.eclipse.cdt.core.dom.ast.IASTName; +import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; +import org.eclipse.cdt.core.dom.ast.IBinding; +import org.eclipse.cdt.core.dom.ast.IProblemBinding; +import org.eclipse.cdt.core.model.IWorkingCopy; +import org.eclipse.cdt.ui.CUIPlugin; + +import org.eclipse.cdt.internal.core.pdom.dom.PDOMBinding; + +import org.eclipse.cdt.internal.ui.editor.CEditor; +import org.eclipse.cdt.internal.ui.editor.CEditorMessages; + public class OpenDeclarationsAction extends SelectionParseAction { public static final IASTName[] BLANK_NAME_ARRAY = new IASTName[0]; ITextSelection selNode; @@ -70,7 +74,7 @@ public class OpenDeclarationsAction extends SelectionParseAction { IBinding binding = searchName.resolveBinding(); if (binding != null && !(binding instanceof IProblemBinding)) { - final IASTName[] declNames = ast.getDeclarations(binding); + final IName[] declNames = ast.getDeclarations(binding); if (declNames.length > 0) { runInUIThread(new Runnable() { public void run() { @@ -83,11 +87,11 @@ public class OpenDeclarationsAction extends SelectionParseAction { }); } else if (binding instanceof PDOMBinding) { PDOMBinding pdomBinding = (PDOMBinding)binding; - IASTName name = pdomBinding.getFirstDefinition(); + IName name = pdomBinding.getFirstDefinition(); if (name == null) name = pdomBinding.getFirstDeclaration(); if (name != null) { - final IASTName dname = name; + final IName dname = name; Display.getDefault().asyncExec(new Runnable() { public void run() { try { diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/OpenDefinitionAction.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/OpenDefinitionAction.java index 8e3ffecf559..adc86c98b47 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/OpenDefinitionAction.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/OpenDefinitionAction.java @@ -20,6 +20,7 @@ import org.eclipse.core.runtime.jobs.Job; import org.eclipse.jface.text.ITextSelection; import org.eclipse.swt.widgets.Display; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; import org.eclipse.cdt.core.dom.ast.IBinding; @@ -72,7 +73,7 @@ public class OpenDefinitionAction extends SelectionParseAction { IBinding binding = searchName.resolveBinding(); if (binding != null) { - final IASTName[] declNames = ast.getDefinitions(binding); + final IName[] declNames = ast.getDefinitions(binding); if (declNames.length > 0) { runInUIThread(new Runnable() { public void run() { diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/SelectionParseAction.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/SelectionParseAction.java index 6070d9d5673..33c329f8226 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/SelectionParseAction.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/SelectionParseAction.java @@ -36,8 +36,8 @@ import org.eclipse.ui.ide.IDE; import org.eclipse.ui.texteditor.IDocumentProvider; import org.eclipse.ui.texteditor.ITextEditor; +import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.ast.IASTFileLocation; -import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.model.CoreModel; import org.eclipse.cdt.core.parser.Keywords; import org.eclipse.cdt.core.resources.FileStorage; @@ -454,7 +454,7 @@ public class SelectionParseAction extends Action { * * @param name */ - protected void open(IASTName name) throws CoreException { + protected void open(IName name) throws CoreException { IASTFileLocation fileloc = name.getFileLocation(); if (fileloc == null) // no source location - TODO spit out an error in the status bar