1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-08 16:55:38 +02:00

Fine tuning of F3 navigation.

This commit is contained in:
Sergey Prigogin 2009-05-22 06:08:30 +00:00
parent bf6979fc33
commit 1c29e6b4d6
5 changed files with 469 additions and 445 deletions

View file

@ -80,10 +80,10 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
private void assertNode(String name, int offset, IASTNode node) { private void assertNode(String name, int offset, IASTNode node) {
assertNotNull(node); assertNotNull(node);
assertEquals(name, node.toString()); assertEquals(node.toString(), name);
IASTFileLocation loc= node.getFileLocation(); IASTFileLocation loc= node.getFileLocation();
assertEquals(offset, loc.getNodeOffset()); assertEquals(loc.getNodeOffset(), offset);
assertEquals(name.length(), loc.getNodeLength()); assertEquals(loc.getNodeLength(), name.length());
} }
protected void waitUntilFileIsIndexed(IIndex index, IFile file, int maxmillis) throws Exception { protected void waitUntilFileIsIndexed(IIndex index, IFile file, int maxmillis) throws Exception {
@ -130,17 +130,17 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
IASTNode node = testF3(file, offset); IASTNode node = testF3(file, offset);
assertTrue(node instanceof IASTName); assertTrue(node instanceof IASTName);
assertEquals("operator new[]", ((IASTName)node).toString()); //$NON-NLS-1$ assertEquals(((IASTName)node).toString(), "operator new[]"); //$NON-NLS-1$
assertEquals(hcode.indexOf("operator new"), ((ASTNode)node).getOffset()); assertEquals(((ASTNode)node).getOffset(), hcode.indexOf("operator new"));
assertEquals(16, ((ASTNode)node).getLength()); assertEquals(((ASTNode)node).getLength(), 16);
offset = scode.indexOf("p2-> operator") + 11; //$NON-NLS-1$ offset = scode.indexOf("p2-> operator") + 11; //$NON-NLS-1$
node = testF3(file, offset); node = testF3(file, offset);
assertTrue(node instanceof IASTName); assertTrue(node instanceof IASTName);
assertEquals("operator =", ((IASTName)node).toString()); //$NON-NLS-1$ assertEquals(((IASTName)node).toString(), "operator ="); //$NON-NLS-1$
assertEquals(hcode.indexOf("operator="), ((ASTNode)node).getOffset()); assertEquals(((ASTNode)node).getOffset(), hcode.indexOf("operator="));
assertEquals(9, ((ASTNode)node).getLength()); assertEquals(((ASTNode)node).getLength(), 9);
} }
// template <class T> // template <class T>
@ -172,9 +172,9 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
int soffset = scode.indexOf("testTemplate"); int soffset = scode.indexOf("testTemplate");
IASTNode def = testF3(file, soffset+2); IASTNode def = testF3(file, soffset+2);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertEquals(((IASTName)def).toString(), "testTemplate"); //$NON-NLS-1$ assertEquals("testTemplate", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)def).getOffset(), hoffset); assertEquals(hoffset, ((ASTNode) def).getOffset());
assertEquals(((ASTNode)def).getLength(), 12); assertEquals(12, ((ASTNode) def).getLength());
} }
// template<typename T> // template<typename T>
@ -198,9 +198,9 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
int soffset = scode.indexOf("assign"); //$NON-NLS-1$ int soffset = scode.indexOf("assign"); //$NON-NLS-1$
IASTNode def = testF3(file, soffset + 2); IASTNode def = testF3(file, soffset + 2);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertEquals(((IASTName) def).toString(), "assign"); //$NON-NLS-1$ assertEquals("assign", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode) def).getOffset(), hoffset); assertEquals(hoffset, ((ASTNode) def).getOffset());
assertEquals(((ASTNode) def).getLength(), 6); assertEquals(6, ((ASTNode) def).getLength());
} }
// // the header // // the header
@ -231,12 +231,12 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
IASTNode def = testF3(hfile, hoffset+2); IASTNode def = testF3(hfile, hoffset+2);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "MyInt"); //$NON-NLS-1$ assertEquals("MyInt", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), hoffset); assertEquals(hoffset, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 5); assertEquals(5, ((ASTNode) decl).getLength());
assertEquals(((IASTName)def).toString(), "MyInt"); //$NON-NLS-1$ assertEquals("MyInt", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(soffset, def.getFileLocation().getNodeOffset()); assertEquals(soffset, def.getFileLocation().getNodeOffset());
assertEquals(((ASTNode)def).getLength(), 5); assertEquals(5, ((ASTNode) def).getLength());
hoffset= hcode.indexOf("MyConst"); hoffset= hcode.indexOf("MyConst");
soffset = scode.indexOf("MyConst"); soffset = scode.indexOf("MyConst");
@ -244,12 +244,12 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
def = testF3(hfile, hoffset+2); def = testF3(hfile, hoffset+2);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "MyConst"); //$NON-NLS-1$ assertEquals("MyConst", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(hoffset, ((ASTNode)decl).getOffset()); assertEquals(hoffset, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 7); assertEquals(7, ((ASTNode) decl).getLength());
assertEquals(((IASTName)def).toString(), "MyConst"); //$NON-NLS-1$ assertEquals("MyConst", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(soffset, def.getFileLocation().getNodeOffset()); assertEquals(soffset, def.getFileLocation().getNodeOffset());
assertEquals(((ASTNode)def).getLength(), 7); assertEquals(7, ((ASTNode) def).getLength());
hoffset= hcode.indexOf("MyFunc"); hoffset= hcode.indexOf("MyFunc");
soffset = scode.indexOf("MyFunc"); soffset = scode.indexOf("MyFunc");
@ -257,12 +257,12 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
def = testF3(hfile, hoffset+2); def = testF3(hfile, hoffset+2);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "MyFunc"); //$NON-NLS-1$ assertEquals("MyFunc", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(hoffset, ((ASTNode)decl).getOffset()); assertEquals(hoffset, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 6); assertEquals(6, ((ASTNode) decl).getLength());
assertEquals(((IASTName)def).toString(), "MyFunc"); //$NON-NLS-1$ assertEquals("MyFunc", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(soffset, def.getFileLocation().getNodeOffset()); assertEquals(soffset, def.getFileLocation().getNodeOffset());
assertEquals(((ASTNode)def).getLength(), 6); assertEquals(6, ((ASTNode) def).getLength());
hoffset= hcode.indexOf("MyStruct"); hoffset= hcode.indexOf("MyStruct");
soffset = scode.indexOf("MyStruct"); soffset = scode.indexOf("MyStruct");
@ -270,12 +270,12 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
def = testF3(hfile, hoffset+2); def = testF3(hfile, hoffset+2);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "MyStruct"); //$NON-NLS-1$ assertEquals("MyStruct", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(hoffset, ((ASTNode)decl).getOffset()); assertEquals(hoffset, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 8); assertEquals(8, ((ASTNode) decl).getLength());
assertEquals(((IASTName)def).toString(), "MyStruct"); //$NON-NLS-1$ assertEquals("MyStruct", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(soffset, def.getFileLocation().getNodeOffset()); assertEquals(hoffset, def.getFileLocation().getNodeOffset());
assertEquals(((ASTNode)def).getLength(), 8); assertEquals(8, ((ASTNode) def).getLength());
hoffset= hcode.indexOf("MyClass"); hoffset= hcode.indexOf("MyClass");
soffset = scode.indexOf("MyClass"); soffset = scode.indexOf("MyClass");
@ -283,12 +283,12 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
def = testF3(hfile, hoffset+2); def = testF3(hfile, hoffset+2);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "MyClass"); //$NON-NLS-1$ assertEquals("MyClass", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(hoffset, ((ASTNode)decl).getOffset()); assertEquals(hoffset, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 7); assertEquals(7, ((ASTNode) decl).getLength());
assertEquals(((IASTName)def).toString(), "MyClass"); //$NON-NLS-1$ assertEquals("MyClass", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(soffset, def.getFileLocation().getNodeOffset()); assertEquals(hoffset, def.getFileLocation().getNodeOffset());
assertEquals(((ASTNode)def).getLength(), 7); assertEquals(7, ((ASTNode) def).getLength());
} }
// // the header // // the header
@ -310,14 +310,14 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
int soffset = scode.indexOf("AAA<int>"); //$NON-NLS-1$ int soffset = scode.indexOf("AAA<int>"); //$NON-NLS-1$
IASTNode decl1 = testF3(file, soffset, 3); IASTNode decl1 = testF3(file, soffset, 3);
assertTrue(decl1 instanceof IASTName); assertTrue(decl1 instanceof IASTName);
assertEquals(((IASTName)decl1).toString(), "AAA"); //$NON-NLS-1$ assertEquals("AAA", ((IASTName) decl1).toString()); //$NON-NLS-1$
assertEquals(hoffset, decl1.getFileLocation().getNodeOffset()); assertEquals(hoffset, decl1.getFileLocation().getNodeOffset());
assertEquals(((ASTNode)decl1).getLength(), 3); assertEquals(3, ((ASTNode) decl1).getLength());
IASTNode decl2 = testF3(file, soffset, 8); IASTNode decl2 = testF3(file, soffset, 8);
assertEquals(((IASTName)decl2).toString(), "AAA"); //$NON-NLS-1$ assertEquals("AAA", ((IASTName) decl2).toString()); //$NON-NLS-1$
assertEquals(hoffset, decl2.getFileLocation().getNodeOffset()); assertEquals(hoffset, decl2.getFileLocation().getNodeOffset());
assertEquals(((ASTNode)decl2).getLength(), 3); assertEquals(3, ((ASTNode) decl2).getLength());
} }
// // the header // // the header
@ -344,9 +344,9 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
int doffset= hcode.indexOf("X(int)"); int doffset= hcode.indexOf("X(int)");
IASTNode decl = testF3(file, offset); IASTNode decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "X"); //$NON-NLS-1$ assertEquals("X", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(doffset, decl.getFileLocation().getNodeOffset()); assertEquals(doffset, decl.getFileLocation().getNodeOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
} }
// // the header // // the header
@ -376,9 +376,9 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
int doffset = hcode.indexOf("X()"); int doffset = hcode.indexOf("X()");
IASTNode decl = testF3(file, offset); IASTNode decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals("X", decl.toString()); assertEquals(decl.toString(), "X");
assertEquals(doffset, decl.getFileLocation().getNodeOffset()); assertEquals(doffset, decl.getFileLocation().getNodeOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
} }
// // the header // // the header
@ -453,7 +453,7 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
offset1= scode.indexOf("S;"); offset1= scode.indexOf("S;");
int offset2= scode.indexOf("S", offset1); int offset2= scode.indexOf("S", offset1);
decl= testF3(hfile, offset0); decl= testF3(hfile, offset0);
assertNode("S", offset1, decl); assertNode("S", offset0, decl);
decl= testF3(file, offset1); decl= testF3(file, offset1);
assertNode("S", offset0, decl); assertNode("S", offset0, decl);
decl= testF3(file, offset2); decl= testF3(file, offset2);
@ -1001,7 +1001,7 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
testF3(file, offset1); testF3(file, offset1);
IEditorPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor(); IEditorPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
IEditorInput input = part.getEditorInput(); IEditorInput input = part.getEditorInput();
assertEquals("aheader.h", ((FileEditorInput)input).getFile().getName()); assertEquals("aheader.h", ((FileEditorInput) input).getFile().getName());
} }
// void cfunc(); // void cfunc();
@ -1028,18 +1028,18 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
testF3(cppfile, offset1); testF3(cppfile, offset1);
IEditorPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor(); IEditorPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
IEditorInput input = part.getEditorInput(); IEditorInput input = part.getEditorInput();
assertEquals("s.c", ((FileEditorInput)input).getFile().getName()); assertEquals("s.c", ((FileEditorInput) input).getFile().getName());
testF3(cppfile, offset2); testF3(cppfile, offset2);
part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor(); part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
input = part.getEditorInput(); input = part.getEditorInput();
assertEquals("s.c", ((FileEditorInput)input).getFile().getName()); assertEquals("s.c", ((FileEditorInput) input).getFile().getName());
offset1 = ccode.indexOf("cxcpp"); offset1 = ccode.indexOf("cxcpp");
testF3(cfile, offset1); testF3(cfile, offset1);
part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor(); part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
input = part.getEditorInput(); input = part.getEditorInput();
assertEquals("s.cpp", ((FileEditorInput)input).getFile().getName()); assertEquals("s.cpp", ((FileEditorInput) input).getFile().getName());
} }
// void cxcpp(); // void cxcpp();
@ -1066,18 +1066,18 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
testF3(cfile, offset1); testF3(cfile, offset1);
IEditorPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor(); IEditorPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
IEditorInput input = part.getEditorInput(); IEditorInput input = part.getEditorInput();
assertEquals("s.cpp", ((FileEditorInput)input).getFile().getName()); assertEquals("s.cpp", ((FileEditorInput) input).getFile().getName());
testF3(cfile, offset2); testF3(cfile, offset2);
part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor(); part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
input = part.getEditorInput(); input = part.getEditorInput();
assertEquals("s.cpp", ((FileEditorInput)input).getFile().getName()); assertEquals("s.cpp", ((FileEditorInput) input).getFile().getName());
offset1 = scode.indexOf("cxcpp"); offset1 = scode.indexOf("cxcpp");
testF3(cppfile, offset1); testF3(cppfile, offset1);
part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor(); part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
input = part.getEditorInput(); input = part.getEditorInput();
assertEquals("s.c", ((FileEditorInput)input).getFile().getName()); assertEquals("s.c", ((FileEditorInput) input).getFile().getName());
} }
// #define ADD_TEXT(txt1,txt2) txt1" "txt2 // #define ADD_TEXT(txt1,txt2) txt1" "txt2
@ -1169,8 +1169,8 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
int soffset = scode.indexOf("+"); //$NON-NLS-1$ int soffset = scode.indexOf("+"); //$NON-NLS-1$
IASTNode def = testF3(file, soffset + 1); IASTNode def = testF3(file, soffset + 1);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertEquals(((IASTName) def).toString(), "operator +"); //$NON-NLS-1$ assertEquals("operator +", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode) def).getOffset(), hoffset); assertEquals(hoffset, ((ASTNode) def).getOffset());
assertEquals(((ASTNode) def).getLength(), 9); assertEquals(9, ((ASTNode) def).getLength());
} }
} }

View file

@ -314,17 +314,17 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
IASTNode node = testF3(file, offset); IASTNode node = testF3(file, offset);
assertTrue(node instanceof IASTName); assertTrue(node instanceof IASTName);
assertEquals(((IASTName)node).toString(), "operator new[]"); //$NON-NLS-1$ assertEquals("operator new[]", ((IASTName)node).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)node).getOffset(), 183); assertEquals(183, ((ASTNode)node).getOffset());
assertEquals(((ASTNode)node).getLength(), 16); assertEquals(16, ((ASTNode)node).getLength());
offset = code.indexOf("p2-> operator") + 11; //$NON-NLS-1$ offset = code.indexOf("p2-> operator") + 11; //$NON-NLS-1$
node = testF3(file, offset); node = testF3(file, offset);
assertTrue(node instanceof IASTName); assertTrue(node instanceof IASTName);
assertEquals(((IASTName)node).toString(), "operator ="); //$NON-NLS-1$ assertEquals("operator =", ((IASTName)node).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)node).getOffset(), 121); assertEquals(121, ((ASTNode)node).getOffset());
assertEquals(((ASTNode)node).getLength(), 9); assertEquals(9, ((ASTNode)node).getLength());
} }
public void testBasicDefinition() throws Exception { public void testBasicDefinition() throws Exception {
@ -350,12 +350,12 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
IASTNode decl = testF3(file, defOffset); IASTNode decl = testF3(file, defOffset);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "MyInt"); //$NON-NLS-1$ assertEquals("MyInt", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 11); assertEquals(11, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 5); assertEquals(5, ((ASTNode) decl).getLength());
assertEquals(((IASTName)def).toString(), "MyInt"); //$NON-NLS-1$ assertEquals("MyInt", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)def).getOffset(), 330); assertEquals(330, ((ASTNode) def).getOffset());
assertEquals(((ASTNode)def).getLength(), 5); assertEquals(5, ((ASTNode) def).getLength());
offset= code.indexOf("MyConst") + 2; offset= code.indexOf("MyConst") + 2;
defOffset= code.indexOf("MyConst", offset) + 2; defOffset= code.indexOf("MyConst", offset) + 2;
@ -363,12 +363,12 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
decl = testF3(file, defOffset); decl = testF3(file, defOffset);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "MyConst"); //$NON-NLS-1$ assertEquals("MyConst", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 69); assertEquals(69, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 7); assertEquals(7, ((ASTNode) decl).getLength());
assertEquals(((IASTName)def).toString(), "MyConst"); //$NON-NLS-1$ assertEquals("MyConst", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)def).getOffset(), 354); assertEquals(354, ((ASTNode) def).getOffset());
assertEquals(((ASTNode)def).getLength(), 7); assertEquals(7, ((ASTNode) def).getLength());
offset= code.indexOf("MyFunc") + 2; offset= code.indexOf("MyFunc") + 2;
defOffset= code.indexOf("MyFunc", offset) + 2; defOffset= code.indexOf("MyFunc", offset) + 2;
@ -376,12 +376,12 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
decl = testF3(file, defOffset); decl = testF3(file, defOffset);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "MyFunc"); //$NON-NLS-1$ assertEquals("MyFunc", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 115); assertEquals(115, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 6); assertEquals(6, ((ASTNode) decl).getLength());
assertEquals(((IASTName)def).toString(), "MyFunc"); //$NON-NLS-1$ assertEquals("MyFunc", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)def).getOffset(), 373); assertEquals(373, ((ASTNode) def).getOffset());
assertEquals(((ASTNode)def).getLength(), 6); assertEquals(6, ((ASTNode) def).getLength());
offset= code.indexOf("MyStruct") + 2; offset= code.indexOf("MyStruct") + 2;
defOffset= code.indexOf("MyStruct", offset) + 2; defOffset= code.indexOf("MyStruct", offset) + 2;
@ -389,12 +389,12 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
decl = testF3(file, defOffset); decl = testF3(file, defOffset);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "MyStruct"); //$NON-NLS-1$ assertEquals("MyStruct", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 171); assertEquals(417, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 8); assertEquals(8, ((ASTNode) decl).getLength());
assertEquals(((IASTName)def).toString(), "MyStruct"); //$NON-NLS-1$ assertEquals("MyStruct", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)def).getOffset(), 417); assertEquals(417, ((ASTNode) def).getOffset());
assertEquals(((ASTNode)def).getLength(), 8); assertEquals(8, ((ASTNode) def).getLength());
offset= code.indexOf("MyClass") + 2; offset= code.indexOf("MyClass") + 2;
defOffset= code.indexOf("MyClass", offset) + 2; defOffset= code.indexOf("MyClass", offset) + 2;
@ -402,12 +402,12 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
decl = testF3(file, defOffset); decl = testF3(file, defOffset);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "MyClass"); //$NON-NLS-1$ assertEquals("MyClass", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 278); assertEquals(463, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 7); assertEquals(7, ((ASTNode) decl).getLength());
assertEquals(((IASTName)def).toString(), "MyClass"); //$NON-NLS-1$ assertEquals("MyClass", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)def).getOffset(), 463); assertEquals(463, ((ASTNode) def).getOffset());
assertEquals(((ASTNode)def).getLength(), 7); assertEquals(7, ((ASTNode) def).getLength());
} }
public void testBug95224() throws Exception{ public void testBug95224() throws Exception{
@ -424,9 +424,9 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
int offset = code.indexOf("A(); // open definition "); //$NON-NLS-1$ int offset = code.indexOf("A(); // open definition "); //$NON-NLS-1$
IASTNode decl = testF3(file, offset); IASTNode decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "~A"); //$NON-NLS-1$ assertEquals("~A", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 65); assertEquals(65, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 2); assertEquals(2, ((ASTNode) decl).getLength());
} }
public void testBasicTemplateInstance() throws Exception{ public void testBasicTemplateInstance() throws Exception{
@ -442,15 +442,15 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
int offset = code.indexOf("AAA<int>"); //$NON-NLS-1$ int offset = code.indexOf("AAA<int>"); //$NON-NLS-1$
IASTNode decl1 = testF3(file, offset, 3); IASTNode decl1 = testF3(file, offset, 3);
assertTrue(decl1 instanceof IASTName); assertTrue(decl1 instanceof IASTName);
assertEquals(((IASTName)decl1).toString(), "AAA"); //$NON-NLS-1$ assertEquals("AAA", ((IASTName) decl1).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl1).getOffset(), 74); assertEquals(74, ((ASTNode) decl1).getOffset());
assertEquals(((ASTNode)decl1).getLength(), 3); assertEquals(3, ((ASTNode) decl1).getLength());
IASTNode decl2 = testF3(file, offset, 8); IASTNode decl2 = testF3(file, offset, 8);
assertTrue(decl2 instanceof IASTName); assertTrue(decl2 instanceof IASTName);
assertEquals(((IASTName)decl2).toString(), "AAA"); //$NON-NLS-1$ assertEquals("AAA", ((IASTName) decl2).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl2).getOffset(), 74); assertEquals(74, ((ASTNode) decl2).getOffset());
assertEquals(((ASTNode)decl2).getLength(), 3); assertEquals(3, ((ASTNode) decl2).getLength());
} }
public void testBug86829A() throws Exception { public void testBug86829A() throws Exception {
@ -471,9 +471,9 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
int offset = code.indexOf("X(2)"); //$NON-NLS-1$ int offset = code.indexOf("X(2)"); //$NON-NLS-1$
IASTNode decl = testF3(file, offset); IASTNode decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "X"); //$NON-NLS-1$ assertEquals("X", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 18); assertEquals(18, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
} }
public void testBug86829B() throws Exception { public void testBug86829B() throws Exception {
@ -497,9 +497,9 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
int offset = code.indexOf("X(a);"); //$NON-NLS-1$ int offset = code.indexOf("X(a);"); //$NON-NLS-1$
IASTNode decl = testF3(file, offset); IASTNode decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "X"); //$NON-NLS-1$ assertEquals("X", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 6); assertEquals(6, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
} }
// taken from C++ spec 3.1-3: // taken from C++ spec 3.1-3:
@ -557,241 +557,241 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
int offset = code.indexOf("a; // defines a"); //$NON-NLS-1$ int offset = code.indexOf("a; // defines a"); //$NON-NLS-1$
IASTNode decl = testF3(file, offset); IASTNode decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "a"); //$NON-NLS-1$ assertEquals("a", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 512); assertEquals(512, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("c = 1; // defines c"); //$NON-NLS-1$ offset = code.indexOf("c = 1; // defines c"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "c"); //$NON-NLS-1$ assertEquals("c", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 546); assertEquals(546, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("f(int x) { return x+a; } // defines f and defines x"); //$NON-NLS-1$ offset = code.indexOf("f(int x) { return x+a; } // defines f and defines x"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "f"); //$NON-NLS-1$ assertEquals("f", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 567); assertEquals(567, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("x) { return x+a; } // defines f and defines x"); //$NON-NLS-1$ offset = code.indexOf("x) { return x+a; } // defines f and defines x"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$ assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 67); assertEquals(67, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("x+a; } // defines f and defines x"); //$NON-NLS-1$ offset = code.indexOf("x+a; } // defines f and defines x"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$ assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 67); assertEquals(67, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("x+a; } // defines f and defines x"); //$NON-NLS-1$ offset = code.indexOf("x+a; } // defines f and defines x"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$ assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 67); assertEquals(67, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("a; } // defines f and defines x"); //$NON-NLS-1$ offset = code.indexOf("a; } // defines f and defines x"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "a"); //$NON-NLS-1$ assertEquals("a", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 4); assertEquals(4, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("S { int a; int b; }; // defines S, S::a, and S::b"); //$NON-NLS-1$ offset = code.indexOf("S { int a; int b; }; // defines S, S::a, and S::b"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "S"); //$NON-NLS-1$ assertEquals("S", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 596); assertEquals(120, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("a; int b; }; // defines S, S::a, and S::b"); //$NON-NLS-1$ offset = code.indexOf("a; int b; }; // defines S, S::a, and S::b"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "a"); //$NON-NLS-1$ assertEquals("a", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 128); assertEquals(128, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("b; }; // defines S, S::a, and S::b"); //$NON-NLS-1$ offset = code.indexOf("b; }; // defines S, S::a, and S::b"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "b"); //$NON-NLS-1$ assertEquals("b", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 135); assertEquals(135, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("X { // defines X"); //$NON-NLS-1$ offset = code.indexOf("X { // defines X"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "X"); //$NON-NLS-1$ assertEquals("X", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 177); assertEquals(177, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("x; // defines nonstatic data member x"); //$NON-NLS-1$ offset = code.indexOf("x; // defines nonstatic data member x"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$ assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 198); assertEquals(198, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
IASTNode def; IASTNode def;
offset = code.indexOf("y; // declares static data member y"); //$NON-NLS-1$ offset = code.indexOf("y; // declares static data member y"); //$NON-NLS-1$
def = testF3(file, offset); def = testF3(file, offset);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertEquals(((IASTName)def).toString(), "y"); //$NON-NLS-1$ assertEquals("y", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)def).getOffset(), 337); assertEquals(337, ((ASTNode) def).getOffset());
assertEquals(((ASTNode)def).getLength(), 1); assertEquals(1, ((ASTNode) def).getLength());
offset = code.indexOf("X(): x(0) { } // defines a constructor of X"); //$NON-NLS-1$ offset = code.indexOf("X(): x(0) { } // defines a constructor of X"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "X"); //$NON-NLS-1$ assertEquals("X", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 283); assertEquals(283, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("x(0) { } // defines a constructor of X"); //$NON-NLS-1$ offset = code.indexOf("x(0) { } // defines a constructor of X"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$ assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 198); assertEquals(198, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("X::y = 1; // defines X::y"); //$NON-NLS-1$ offset = code.indexOf("X::y = 1; // defines X::y"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "X"); //$NON-NLS-1$ assertEquals("X", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 177); assertEquals(177, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("y = 1; // defines X::y"); //$NON-NLS-1$ offset = code.indexOf("y = 1; // defines X::y"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "y"); //$NON-NLS-1$ assertEquals("y", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 247); assertEquals(247, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("up, down }; // defines up and down"); //$NON-NLS-1$ offset = code.indexOf("up, down }; // defines up and down"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "up"); //$NON-NLS-1$ assertEquals("up", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 367); assertEquals(367, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 2); assertEquals(2, ((ASTNode) decl).getLength());
offset = code.indexOf("down }; // defines up and down"); //$NON-NLS-1$ offset = code.indexOf("down }; // defines up and down"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "down"); //$NON-NLS-1$ assertEquals("down", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 371); assertEquals(371, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 4); assertEquals(4, ((ASTNode) decl).getLength());
offset = code.indexOf("N { int d; } // defines N and N::d"); //$NON-NLS-1$ offset = code.indexOf("N { int d; } // defines N and N::d"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "N"); //$NON-NLS-1$ assertEquals("N", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 412); assertEquals(412, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("d; } // defines N and N::d"); //$NON-NLS-1$ offset = code.indexOf("d; } // defines N and N::d"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "d"); //$NON-NLS-1$ assertEquals("d", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 420); assertEquals(420, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("N1 = N; // defines N1"); //$NON-NLS-1$ offset = code.indexOf("N1 = N; // defines N1"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "N1"); //$NON-NLS-1$ assertEquals("N1", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 457); assertEquals(457, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 2); assertEquals(2, ((ASTNode) decl).getLength());
offset = code.indexOf("N; // defines N1"); //$NON-NLS-1$ offset = code.indexOf("N; // defines N1"); //$NON-NLS-1$
def = testF3(file, offset); def = testF3(file, offset);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertEquals(((IASTName)def).toString(), "N"); //$NON-NLS-1$ assertEquals("N", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)def).getOffset(), 412); assertEquals(412, ((ASTNode) def).getOffset());
assertEquals(((ASTNode)def).getLength(), 1); assertEquals(1, ((ASTNode) def).getLength());
offset = code.indexOf("X anX; // defines anX"); //$NON-NLS-1$ offset = code.indexOf("X anX; // defines anX"); //$NON-NLS-1$
def = testF3(file, offset); def = testF3(file, offset);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertEquals(((IASTName)def).toString(), "X"); //$NON-NLS-1$ assertEquals("X", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)def).getOffset(), 177); assertEquals(177, ((ASTNode) def).getOffset());
assertEquals(((ASTNode)def).getLength(), 1); assertEquals(1, ((ASTNode) def).getLength());
offset = code.indexOf("anX; // defines anX"); //$NON-NLS-1$ offset = code.indexOf("anX; // defines anX"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "anX"); //$NON-NLS-1$ assertEquals("anX", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 481); assertEquals(481, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 3); assertEquals(3, ((ASTNode) decl).getLength());
offset = code.indexOf("a; // declares a"); //$NON-NLS-1$ offset = code.indexOf("a; // declares a"); //$NON-NLS-1$
def = testF3(file, offset); def = testF3(file, offset);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertEquals(((IASTName)def).toString(), "a"); //$NON-NLS-1$ assertEquals("a", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)def).getOffset(), 4); assertEquals(4, ((ASTNode) def).getOffset());
assertEquals(((ASTNode)def).getLength(), 1); assertEquals(1, ((ASTNode) def).getLength());
offset = code.indexOf("c; // declares c"); //$NON-NLS-1$ offset = code.indexOf("c; // declares c"); //$NON-NLS-1$
def = testF3(file, offset); def = testF3(file, offset);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertEquals(((IASTName)def).toString(), "c"); //$NON-NLS-1$ assertEquals("c", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)def).getOffset(), 37); assertEquals(37, ((ASTNode) def).getOffset());
assertEquals(((ASTNode)def).getLength(), 1); assertEquals(1, ((ASTNode) def).getLength());
offset = code.indexOf("f(int y); // declar f"); //$NON-NLS-1$ offset = code.indexOf("f(int y); // declar f"); //$NON-NLS-1$
def = testF3(file, offset); def = testF3(file, offset);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertEquals(((IASTName)def).toString(), "f"); //$NON-NLS-1$ assertEquals("f", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)def).getOffset(), 61); assertEquals(61, ((ASTNode) def).getOffset());
assertEquals(((ASTNode)def).getLength(), 1); assertEquals(1, ((ASTNode) def).getLength());
offset = code.indexOf("S; // declares S"); //$NON-NLS-1$ offset = code.indexOf("S; // declares S"); //$NON-NLS-1$
def = testF3(file, offset); def = testF3(file, offset);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertEquals(((IASTName)def).toString(), "S"); //$NON-NLS-1$ assertEquals("S", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)def).getOffset(), 120); assertEquals(120, ((ASTNode) def).getOffset());
assertEquals(((ASTNode)def).getLength(), 1); assertEquals(1, ((ASTNode) def).getLength());
offset = code.indexOf("Int; // declares Int"); //$NON-NLS-1$ offset = code.indexOf("Int; // declares Int"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "Int"); //$NON-NLS-1$ assertEquals("Int", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 625); assertEquals(625, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 3); assertEquals(3, ((ASTNode) decl).getLength());
offset = code.indexOf("X anotherX; // declares anotherX"); //$NON-NLS-1$ offset = code.indexOf("X anotherX; // declares anotherX"); //$NON-NLS-1$
def = testF3(file, offset); def = testF3(file, offset);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertEquals(((IASTName)def).toString(), "X"); //$NON-NLS-1$ assertEquals("X", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)def).getOffset(), 177); assertEquals(177, ((ASTNode) def).getOffset());
assertEquals(((ASTNode)def).getLength(), 1); assertEquals(1, ((ASTNode) def).getLength());
offset = code.indexOf("anotherX; // declares anotherX"); //$NON-NLS-1$ offset = code.indexOf("anotherX; // declares anotherX"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "anotherX"); //$NON-NLS-1$ assertEquals("anotherX", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 655); assertEquals(655, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 8); assertEquals(8, ((ASTNode) decl).getLength());
offset = code.indexOf("N::d; // declares N::d"); //$NON-NLS-1$ offset = code.indexOf("N::d; // declares N::d"); //$NON-NLS-1$
def = testF3(file, offset); def = testF3(file, offset);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertEquals(((IASTName)def).toString(), "N"); //$NON-NLS-1$ assertEquals("N", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)def).getOffset(), 412); assertEquals(412, ((ASTNode) def).getOffset());
assertEquals(((ASTNode)def).getLength(), 1); assertEquals(1, ((ASTNode) def).getLength());
offset = code.indexOf("d; // declares N::d"); //$NON-NLS-1$ offset = code.indexOf("d; // declares N::d"); //$NON-NLS-1$
def = testF3(file, offset); def = testF3(file, offset);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertEquals(((IASTName)def).toString(), "d"); //$NON-NLS-1$ assertEquals("d", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)def).getOffset(), 420); assertEquals(420, ((ASTNode) def).getOffset());
assertEquals(((ASTNode)def).getLength(), 1); assertEquals(1, ((ASTNode) def).getLength());
} }
public void testBug95225() throws Exception { public void testBug95225() throws Exception {
@ -819,16 +819,16 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
int offset = code.indexOf("rflow('+',x,3.45e107);"); //$NON-NLS-1$ int offset = code.indexOf("rflow('+',x,3.45e107);"); //$NON-NLS-1$
IASTNode decl = testF3(file, offset); IASTNode decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "Overflow"); //$NON-NLS-1$ assertEquals("Overflow", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 25); assertEquals(25, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 8); assertEquals(8, ((ASTNode) decl).getLength());
offset = code.indexOf("x,3.45e107);"); //$NON-NLS-1$ offset = code.indexOf("x,3.45e107);"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$ assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 72); assertEquals(72, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
} }
public void testNoDefinitions() throws Exception { public void testNoDefinitions() throws Exception {
@ -845,37 +845,37 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
int offset = code.indexOf("a1; // declares a"); //$NON-NLS-1$ int offset = code.indexOf("a1; // declares a"); //$NON-NLS-1$
IASTNode decl = testF3(file, offset); IASTNode decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "a1"); //$NON-NLS-1$ assertEquals("a1", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 11); assertEquals(11, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 2); assertEquals(2, ((ASTNode) decl).getLength());
offset = code.indexOf("c1; // declares c"); //$NON-NLS-1$ offset = code.indexOf("c1; // declares c"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "c1"); //$NON-NLS-1$ assertEquals("c1", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 46); assertEquals(46, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 2); assertEquals(2, ((ASTNode) decl).getLength());
offset = code.indexOf("f1(int); // declares f"); //$NON-NLS-1$ offset = code.indexOf("f1(int); // declares f"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "f1"); //$NON-NLS-1$ assertEquals("f1", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 68); assertEquals(68, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 2); assertEquals(2, ((ASTNode) decl).getLength());
offset = code.indexOf("S1; // declares S"); //$NON-NLS-1$ offset = code.indexOf("S1; // declares S"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "S1"); //$NON-NLS-1$ assertEquals("S1", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 98); assertEquals(98, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 2); assertEquals(2, ((ASTNode) decl).getLength());
offset = code.indexOf("Int; // declares Int"); //$NON-NLS-1$ offset = code.indexOf("Int; // declares Int"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "Int"); //$NON-NLS-1$ assertEquals("Int", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 128); assertEquals(128, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 3); assertEquals(3, ((ASTNode) decl).getLength());
} }
public void testBug95202() throws Exception { public void testBug95202() throws Exception {
@ -895,9 +895,9 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
int offset = code.indexOf("s); // wellformed"); //$NON-NLS-1$ int offset = code.indexOf("s); // wellformed"); //$NON-NLS-1$
IASTNode decl = testF3(file, offset); IASTNode decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "s"); //$NON-NLS-1$ assertEquals("s", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 117); assertEquals(117, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
} }
public void testBug95229() throws Exception { public void testBug95229() throws Exception {
@ -915,9 +915,9 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
int offset = code.indexOf("rator short(); // F3"); //$NON-NLS-1$ int offset = code.indexOf("rator short(); // F3"); //$NON-NLS-1$
IASTNode decl = testF3(file, offset); IASTNode decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "operator short int"); //$NON-NLS-1$ assertEquals("operator short int", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 11); assertEquals(11, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 14); assertEquals(14, ((ASTNode) decl).getLength());
} }
public void testBug78354() throws Exception { public void testBug78354() throws Exception {
@ -937,9 +937,9 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
int offset = code.indexOf("TestTypeOne myFirstLink = 5;"); //$NON-NLS-1$ int offset = code.indexOf("TestTypeOne myFirstLink = 5;"); //$NON-NLS-1$
IASTNode decl = testF3(file, offset); IASTNode decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "TestTypeOne"); //$NON-NLS-1$ assertEquals("TestTypeOne", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 12); assertEquals(12, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 11); assertEquals(11, ((ASTNode) decl).getLength());
} }
public void testBug103697() throws Exception { public void testBug103697() throws Exception {
@ -955,9 +955,9 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
int offset = code.indexOf("return x;\n") + "return ".length(); //$NON-NLS-1$ //$NON-NLS-2$ int offset = code.indexOf("return x;\n") + "return ".length(); //$NON-NLS-1$ //$NON-NLS-2$
IASTNode decl = testF3(file, offset); IASTNode decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$ assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 4); assertEquals(4, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
} }
public void testBug76043() throws Exception { public void testBug76043() throws Exception {
@ -975,9 +975,9 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
int offset = code.indexOf("return x;\n") + "return ".length(); //$NON-NLS-1$ //$NON-NLS-2$ int offset = code.indexOf("return x;\n") + "return ".length(); //$NON-NLS-1$ //$NON-NLS-2$
IASTNode decl = testF3(file, offset); IASTNode decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$ assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 4); assertEquals(4, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
} }
// typedef int (*functionPointer)(int); // typedef int (*functionPointer)(int);
@ -998,8 +998,8 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
IASTNode decl = testF3(file, or1); IASTNode decl = testF3(file, or1);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "functionPointer"); //$NON-NLS-1$ assertEquals("functionPointer", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), od1); assertEquals(od1, ((ASTNode) decl).getOffset());
IEditorPart editor= PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor(); IEditorPart editor= PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
assertNotNull(editor); assertNotNull(editor);
@ -1011,8 +1011,8 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
decl = testF3(file, code.length() + or2); decl = testF3(file, code.length() + or2);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "functionPointerArray"); assertEquals("functionPointerArray", ((IASTName) decl).toString());
assertEquals(((ASTNode)decl).getOffset(), code.length() + od2); assertEquals(code.length() + od2, ((ASTNode) decl).getOffset());
} }
} }
@ -1028,8 +1028,8 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
IASTNode decl = testF3(file, or1); IASTNode decl = testF3(file, or1);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "EMPTY"); //$NON-NLS-1$ assertEquals("EMPTY", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), od1); assertEquals(od1, ((ASTNode) decl).getOffset());
} }
} }

View file

@ -75,7 +75,7 @@ public abstract class CSelectionTestsAnyIndexer extends BaseSelectionTestsIndexe
private void assertNode(String name, int offset, IASTNode node) { private void assertNode(String name, int offset, IASTNode node) {
assertNotNull(node); assertNotNull(node);
assertEquals(name, node.toString()); assertEquals(node.toString(), name);
IASTFileLocation loc= node.getFileLocation(); IASTFileLocation loc= node.getFileLocation();
assertEquals(offset, loc.getNodeOffset()); assertEquals(offset, loc.getNodeOffset());
assertEquals(name.length(), loc.getNodeLength()); assertEquals(name.length(), loc.getNodeLength());
@ -107,12 +107,12 @@ public abstract class CSelectionTestsAnyIndexer extends BaseSelectionTestsIndexe
IASTNode def = testF3(hfile, hoffset+2); IASTNode def = testF3(hfile, hoffset+2);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "MyInt"); //$NON-NLS-1$ assertEquals("MyInt", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), hoffset); assertEquals(hoffset, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 5); assertEquals(5, ((ASTNode) decl).getLength());
assertEquals(((IASTName)def).toString(), "MyInt"); //$NON-NLS-1$ assertEquals("MyInt", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(soffset, def.getFileLocation().getNodeOffset()); assertEquals(soffset, def.getFileLocation().getNodeOffset());
assertEquals(((ASTNode)def).getLength(), 5); assertEquals(5, ((ASTNode) def).getLength());
hoffset= hcode.indexOf("MyConst"); hoffset= hcode.indexOf("MyConst");
soffset = scode.indexOf("MyConst"); soffset = scode.indexOf("MyConst");
@ -120,12 +120,12 @@ public abstract class CSelectionTestsAnyIndexer extends BaseSelectionTestsIndexe
def = testF3(hfile, hoffset+2); def = testF3(hfile, hoffset+2);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "MyConst"); //$NON-NLS-1$ assertEquals("MyConst", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(hoffset, ((ASTNode)decl).getOffset()); assertEquals(hoffset, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 7); assertEquals(7, ((ASTNode) decl).getLength());
assertEquals(((IASTName)def).toString(), "MyConst"); //$NON-NLS-1$ assertEquals("MyConst", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(soffset, def.getFileLocation().getNodeOffset()); assertEquals(soffset, def.getFileLocation().getNodeOffset());
assertEquals(((ASTNode)def).getLength(), 7); assertEquals(7, ((ASTNode) def).getLength());
hoffset= hcode.indexOf("MyFunc"); hoffset= hcode.indexOf("MyFunc");
soffset = scode.indexOf("MyFunc"); soffset = scode.indexOf("MyFunc");
@ -133,12 +133,12 @@ public abstract class CSelectionTestsAnyIndexer extends BaseSelectionTestsIndexe
def = testF3(hfile, hoffset+2); def = testF3(hfile, hoffset+2);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "MyFunc"); //$NON-NLS-1$ assertEquals("MyFunc", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(hoffset, ((ASTNode)decl).getOffset()); assertEquals(hoffset, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 6); assertEquals(6, ((ASTNode) decl).getLength());
assertEquals(((IASTName)def).toString(), "MyFunc"); //$NON-NLS-1$ assertEquals("MyFunc", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(soffset, def.getFileLocation().getNodeOffset()); assertEquals(soffset, def.getFileLocation().getNodeOffset());
assertEquals(((ASTNode)def).getLength(), 6); assertEquals(6, ((ASTNode) def).getLength());
hoffset= hcode.indexOf("MyStruct"); hoffset= hcode.indexOf("MyStruct");
soffset = scode.indexOf("MyStruct"); soffset = scode.indexOf("MyStruct");
@ -146,12 +146,12 @@ public abstract class CSelectionTestsAnyIndexer extends BaseSelectionTestsIndexe
def = testF3(hfile, hoffset+2); def = testF3(hfile, hoffset+2);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "MyStruct"); //$NON-NLS-1$ assertEquals("MyStruct", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(hoffset, ((ASTNode)decl).getOffset()); assertEquals(hoffset, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 8); assertEquals(8, ((ASTNode) decl).getLength());
assertEquals(((IASTName)def).toString(), "MyStruct"); //$NON-NLS-1$ assertEquals("MyStruct", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(soffset, def.getFileLocation().getNodeOffset()); assertEquals(hoffset, def.getFileLocation().getNodeOffset());
assertEquals(((ASTNode)def).getLength(), 8); assertEquals(8, ((ASTNode) def).getLength());
} }
@ -221,7 +221,7 @@ public abstract class CSelectionTestsAnyIndexer extends BaseSelectionTestsIndexe
offset1= scode.indexOf("S;"); offset1= scode.indexOf("S;");
int offset2= scode.indexOf("S", offset1); int offset2= scode.indexOf("S", offset1);
decl= testF3(hfile, offset0); decl= testF3(hfile, offset0);
assertNode("S", offset1, decl); assertNode("S", offset0, decl);
decl= testF3(file, offset1); decl= testF3(file, offset1);
assertNode("S", offset0, decl); assertNode("S", offset0, decl);
decl= testF3(file, offset2); decl= testF3(file, offset2);
@ -497,7 +497,7 @@ public abstract class CSelectionTestsAnyIndexer extends BaseSelectionTestsIndexe
testF3(file, offset1); testF3(file, offset1);
IEditorPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor(); IEditorPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
IEditorInput input = part.getEditorInput(); IEditorInput input = part.getEditorInput();
assertEquals("aheader.h", ((FileEditorInput)input).getFile().getName()); assertEquals("aheader.h", ((FileEditorInput) input).getFile().getName());
} }
// #define DR_NUM_DIMENSIONS(DR) VEC_length (tree, DR_ACCESS_FNS (DR)) // #define DR_NUM_DIMENSIONS(DR) VEC_length (tree, DR_ACCESS_FNS (DR))
@ -517,7 +517,7 @@ public abstract class CSelectionTestsAnyIndexer extends BaseSelectionTestsIndexe
testF3(hfile, offset1); testF3(hfile, offset1);
IEditorPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor(); IEditorPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
IEditorInput input = part.getEditorInput(); IEditorInput input = part.getEditorInput();
assertEquals("source.c", ((FileEditorInput)input).getFile().getName()); assertEquals("source.c", ((FileEditorInput) input).getFile().getName());
} }
// int myFunc(); // int myFunc();
@ -547,5 +547,4 @@ public abstract class CSelectionTestsAnyIndexer extends BaseSelectionTestsIndexe
assertTrue(name.isDefinition()); assertTrue(name.isDefinition());
assertEquals("myFunc", name.toString()); assertEquals("myFunc", name.toString());
} }
} }

View file

@ -326,12 +326,12 @@ public class CSelectionTestsNoIndexer extends BaseUITestCase {
IASTNode decl = testF3(file, defOffset); IASTNode decl = testF3(file, defOffset);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "MyInt"); //$NON-NLS-1$ assertEquals("MyInt", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 11); assertEquals(11, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 5); assertEquals(5, ((ASTNode) decl).getLength());
assertEquals(((IASTName)def).toString(), "MyInt"); //$NON-NLS-1$ assertEquals("MyInt", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)def).getOffset(), 330); assertEquals(330, ((ASTNode) def).getOffset());
assertEquals(((ASTNode)def).getLength(), 5); assertEquals(5, ((ASTNode) def).getLength());
offset= code.indexOf("MyConst") + 2; offset= code.indexOf("MyConst") + 2;
defOffset= code.indexOf("MyConst", offset) + 2; defOffset= code.indexOf("MyConst", offset) + 2;
@ -339,12 +339,12 @@ public class CSelectionTestsNoIndexer extends BaseUITestCase {
decl = testF3(file, defOffset); decl = testF3(file, defOffset);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "MyConst"); //$NON-NLS-1$ assertEquals("MyConst", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 69); assertEquals(69, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 7); assertEquals(7, ((ASTNode) decl).getLength());
assertEquals(((IASTName)def).toString(), "MyConst"); //$NON-NLS-1$ assertEquals("MyConst", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)def).getOffset(), 354); assertEquals(354, ((ASTNode) def).getOffset());
assertEquals(((ASTNode)def).getLength(), 7); assertEquals(7, ((ASTNode) def).getLength());
offset= code.indexOf("MyFunc") + 2; offset= code.indexOf("MyFunc") + 2;
defOffset= code.indexOf("MyFunc", offset) + 2; defOffset= code.indexOf("MyFunc", offset) + 2;
@ -352,12 +352,12 @@ public class CSelectionTestsNoIndexer extends BaseUITestCase {
decl = testF3(file, defOffset); decl = testF3(file, defOffset);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "MyFunc"); //$NON-NLS-1$ assertEquals("MyFunc", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 115); assertEquals(115, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 6); assertEquals(6, ((ASTNode) decl).getLength());
assertEquals(((IASTName)def).toString(), "MyFunc"); //$NON-NLS-1$ assertEquals("MyFunc", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)def).getOffset(), 373); assertEquals(373, ((ASTNode) def).getOffset());
assertEquals(((ASTNode)def).getLength(), 6); assertEquals(6, ((ASTNode) def).getLength());
offset= code.indexOf("MyStruct") + 2; offset= code.indexOf("MyStruct") + 2;
defOffset= code.indexOf("MyStruct", offset) + 2; defOffset= code.indexOf("MyStruct", offset) + 2;
@ -365,12 +365,12 @@ public class CSelectionTestsNoIndexer extends BaseUITestCase {
decl = testF3(file, defOffset); decl = testF3(file, defOffset);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "MyStruct"); //$NON-NLS-1$ assertEquals("MyStruct", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 171); assertEquals(417, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 8); assertEquals(8, ((ASTNode) decl).getLength());
assertEquals(((IASTName)def).toString(), "MyStruct"); //$NON-NLS-1$ assertEquals("MyStruct", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)def).getOffset(), 417); assertEquals(417, ((ASTNode) def).getOffset());
assertEquals(((ASTNode)def).getLength(), 8); assertEquals(8, ((ASTNode) def).getLength());
} }
// taken from C++ spec 3.1-3: // taken from C++ spec 3.1-3:
@ -422,164 +422,164 @@ public class CSelectionTestsNoIndexer extends BaseUITestCase {
int offset = code.indexOf("a; // defines a"); //$NON-NLS-1$ int offset = code.indexOf("a; // defines a"); //$NON-NLS-1$
IASTNode decl = testF3(file, offset); IASTNode decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "a"); //$NON-NLS-1$ assertEquals("a", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 512); assertEquals(512, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("c = 1; // defines c"); //$NON-NLS-1$ offset = code.indexOf("c = 1; // defines c"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "c"); //$NON-NLS-1$ assertEquals("c", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 546); assertEquals(546, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("f(int x) { return x+a; } // defines f and defines x"); //$NON-NLS-1$ offset = code.indexOf("f(int x) { return x+a; } // defines f and defines x"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "f"); //$NON-NLS-1$ assertEquals("f", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 567); assertEquals(567, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("x) { return x+a; } // defines f and defines x"); //$NON-NLS-1$ offset = code.indexOf("x) { return x+a; } // defines f and defines x"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$ assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 67); assertEquals(67, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("x+a; } // defines f and defines x"); //$NON-NLS-1$ offset = code.indexOf("x+a; } // defines f and defines x"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$ assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 67); assertEquals(67, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("x+a; } // defines f and defines x"); //$NON-NLS-1$ offset = code.indexOf("x+a; } // defines f and defines x"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$ assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 67); assertEquals(67, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("a; } // defines f and defines x"); //$NON-NLS-1$ offset = code.indexOf("a; } // defines f and defines x"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "a"); //$NON-NLS-1$ assertEquals("a", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 4); assertEquals(4, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("S { int a; int b; }; // defines S, S::a, and S::b"); //$NON-NLS-1$ offset = code.indexOf("S { int a; int b; }; // defines S, S::a, and S::b"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "S"); //$NON-NLS-1$ assertEquals("S", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 596); assertEquals(120, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("a; int b; }; // defines S, S::a, and S::b"); //$NON-NLS-1$ offset = code.indexOf("a; int b; }; // defines S, S::a, and S::b"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "a"); //$NON-NLS-1$ assertEquals("a", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 128); assertEquals(128, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("b; }; // defines S, S::a, and S::b"); //$NON-NLS-1$ offset = code.indexOf("b; }; // defines S, S::a, and S::b"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "b"); //$NON-NLS-1$ assertEquals("b", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 135); assertEquals(135, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("X { // defines X"); //$NON-NLS-1$ offset = code.indexOf("X { // defines X"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "X"); //$NON-NLS-1$ assertEquals("X", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 177); assertEquals(177, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("x; // defines nonstatic data member x"); //$NON-NLS-1$ offset = code.indexOf("x; // defines nonstatic data member x"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$ assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 198); assertEquals(198, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
offset = code.indexOf("up, down }; // defines up and down"); //$NON-NLS-1$ offset = code.indexOf("up, down }; // defines up and down"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "up"); //$NON-NLS-1$ assertEquals("up", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 367); assertEquals(367, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 2); assertEquals(2, ((ASTNode) decl).getLength());
offset = code.indexOf("down }; // defines up and down"); //$NON-NLS-1$ offset = code.indexOf("down }; // defines up and down"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "down"); //$NON-NLS-1$ assertEquals("down", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 371); assertEquals(371, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 4); assertEquals(4, ((ASTNode) decl).getLength());
IASTNode def; IASTNode def;
offset = code.indexOf("X anX; // defines anX"); //$NON-NLS-1$ offset = code.indexOf("X anX; // defines anX"); //$NON-NLS-1$
def = testF3(file, offset); def = testF3(file, offset);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertEquals(((IASTName)def).toString(), "X"); //$NON-NLS-1$ assertEquals("X", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)def).getOffset(), 177); assertEquals(177, ((ASTNode) def).getOffset());
assertEquals(((ASTNode)def).getLength(), 1); assertEquals(1, ((ASTNode) def).getLength());
offset = code.indexOf("anX; // defines anX"); //$NON-NLS-1$ offset = code.indexOf("anX; // defines anX"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "anX"); //$NON-NLS-1$ assertEquals("anX", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 481); assertEquals(481, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 3); assertEquals(3, ((ASTNode) decl).getLength());
offset = code.indexOf("a; // declares a"); //$NON-NLS-1$ offset = code.indexOf("a; // declares a"); //$NON-NLS-1$
def = testF3(file, offset); def = testF3(file, offset);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertEquals(((IASTName)def).toString(), "a"); //$NON-NLS-1$ assertEquals("a", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)def).getOffset(), 4); assertEquals(4, ((ASTNode) def).getOffset());
assertEquals(((ASTNode)def).getLength(), 1); assertEquals(1, ((ASTNode) def).getLength());
offset = code.indexOf("c; // declares c"); //$NON-NLS-1$ offset = code.indexOf("c; // declares c"); //$NON-NLS-1$
def = testF3(file, offset); def = testF3(file, offset);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertEquals(((IASTName)def).toString(), "c"); //$NON-NLS-1$ assertEquals("c", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)def).getOffset(), 37); assertEquals(37, ((ASTNode) def).getOffset());
assertEquals(((ASTNode)def).getLength(), 1); assertEquals(1, ((ASTNode) def).getLength());
offset = code.indexOf("f(int y); // declar f"); //$NON-NLS-1$ offset = code.indexOf("f(int y); // declar f"); //$NON-NLS-1$
def = testF3(file, offset); def = testF3(file, offset);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertEquals(((IASTName)def).toString(), "f"); //$NON-NLS-1$ assertEquals("f", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)def).getOffset(), 61); assertEquals(61, ((ASTNode) def).getOffset());
assertEquals(((ASTNode)def).getLength(), 1); assertEquals(1, ((ASTNode) def).getLength());
offset = code.indexOf("S; // declares S"); //$NON-NLS-1$ offset = code.indexOf("S; // declares S"); //$NON-NLS-1$
def = testF3(file, offset); def = testF3(file, offset);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertEquals(((IASTName)def).toString(), "S"); //$NON-NLS-1$ assertEquals("S", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)def).getOffset(), 120); assertEquals(120, ((ASTNode) def).getOffset());
assertEquals(((ASTNode)def).getLength(), 1); assertEquals(1, ((ASTNode) def).getLength());
offset = code.indexOf("Int; // declares Int"); //$NON-NLS-1$ offset = code.indexOf("Int; // declares Int"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "Int"); //$NON-NLS-1$ assertEquals("Int", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 625); assertEquals(625, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 3); assertEquals(3, ((ASTNode) decl).getLength());
offset = code.indexOf("X anotherX; // declares anotherX"); //$NON-NLS-1$ offset = code.indexOf("X anotherX; // declares anotherX"); //$NON-NLS-1$
def = testF3(file, offset); def = testF3(file, offset);
assertTrue(def instanceof IASTName); assertTrue(def instanceof IASTName);
assertEquals(((IASTName)def).toString(), "X"); //$NON-NLS-1$ assertEquals("X", ((IASTName) def).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)def).getOffset(), 177); assertEquals(177, ((ASTNode) def).getOffset());
assertEquals(((ASTNode)def).getLength(), 1); assertEquals(1, ((ASTNode) def).getLength());
offset = code.indexOf("anotherX; // declares anotherX"); //$NON-NLS-1$ offset = code.indexOf("anotherX; // declares anotherX"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "anotherX"); //$NON-NLS-1$ assertEquals("anotherX", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 662); assertEquals(662, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 8); assertEquals(8, ((ASTNode) decl).getLength());
} }
public void testNoDefinitions() throws Exception { public void testNoDefinitions() throws Exception {
@ -596,37 +596,37 @@ public class CSelectionTestsNoIndexer extends BaseUITestCase {
int offset = code.indexOf("a1; // declares a"); //$NON-NLS-1$ int offset = code.indexOf("a1; // declares a"); //$NON-NLS-1$
IASTNode decl = testF3(file, offset); IASTNode decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "a1"); //$NON-NLS-1$ assertEquals("a1", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 11); assertEquals(11, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 2); assertEquals(2, ((ASTNode) decl).getLength());
offset = code.indexOf("c1; // declares c"); //$NON-NLS-1$ offset = code.indexOf("c1; // declares c"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "c1"); //$NON-NLS-1$ assertEquals("c1", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 46); assertEquals(46, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 2); assertEquals(2, ((ASTNode) decl).getLength());
offset = code.indexOf("f1(int); // declares f"); //$NON-NLS-1$ offset = code.indexOf("f1(int); // declares f"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "f1"); //$NON-NLS-1$ assertEquals("f1", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 68); assertEquals(68, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 2); assertEquals(2, ((ASTNode) decl).getLength());
offset = code.indexOf("S1; // declares S"); //$NON-NLS-1$ offset = code.indexOf("S1; // declares S"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "S1"); //$NON-NLS-1$ assertEquals("S1", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 98); assertEquals(98, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 2); assertEquals(2, ((ASTNode) decl).getLength());
offset = code.indexOf("Int; // declares Int"); //$NON-NLS-1$ offset = code.indexOf("Int; // declares Int"); //$NON-NLS-1$
decl = testF3(file, offset); decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "Int"); //$NON-NLS-1$ assertEquals("Int", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 128); assertEquals(128, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 3); assertEquals(3, ((ASTNode) decl).getLength());
} }
public void testBug103697() throws Exception { public void testBug103697() throws Exception {
@ -642,9 +642,9 @@ public class CSelectionTestsNoIndexer extends BaseUITestCase {
int offset = code.indexOf("return x;\n") + "return ".length(); //$NON-NLS-1$ //$NON-NLS-2$ int offset = code.indexOf("return x;\n") + "return ".length(); //$NON-NLS-1$ //$NON-NLS-2$
IASTNode decl = testF3(file, offset); IASTNode decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$ assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 4); assertEquals(4, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
} }
public void testBug76043() throws Exception { public void testBug76043() throws Exception {
@ -662,9 +662,9 @@ public class CSelectionTestsNoIndexer extends BaseUITestCase {
int offset = code.indexOf("return x;\n") + "return ".length(); //$NON-NLS-1$ //$NON-NLS-2$ int offset = code.indexOf("return x;\n") + "return ".length(); //$NON-NLS-1$ //$NON-NLS-2$
IASTNode decl = testF3(file, offset); IASTNode decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$ assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 4); assertEquals(4, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 1); assertEquals(1, ((ASTNode) decl).getLength());
} }
public void testBug78354() throws Exception { public void testBug78354() throws Exception {
@ -684,9 +684,9 @@ public class CSelectionTestsNoIndexer extends BaseUITestCase {
int offset = code.indexOf("TestTypeOne myFirstLink = 5;"); //$NON-NLS-1$ int offset = code.indexOf("TestTypeOne myFirstLink = 5;"); //$NON-NLS-1$
IASTNode decl = testF3(file, offset); IASTNode decl = testF3(file, offset);
assertTrue(decl instanceof IASTName); assertTrue(decl instanceof IASTName);
assertEquals(((IASTName)decl).toString(), "TestTypeOne"); //$NON-NLS-1$ assertEquals("TestTypeOne", ((IASTName) decl).toString()); //$NON-NLS-1$
assertEquals(((ASTNode)decl).getOffset(), 12); assertEquals(12, ((ASTNode) decl).getOffset());
assertEquals(((ASTNode)decl).getLength(), 11); assertEquals(11, ((ASTNode) decl).getLength());
} }
// int myFunc(var) // int myFunc(var)

View file

@ -52,6 +52,7 @@ import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
import org.eclipse.cdt.core.dom.ast.IBinding; import org.eclipse.cdt.core.dom.ast.IBinding;
import org.eclipse.cdt.core.dom.ast.IParameter; import org.eclipse.cdt.core.dom.ast.IParameter;
import org.eclipse.cdt.core.dom.ast.IProblemBinding; import org.eclipse.cdt.core.dom.ast.IProblemBinding;
import org.eclipse.cdt.core.dom.ast.IType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateDeclaration; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateDeclaration;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPMethod; import org.eclipse.cdt.core.dom.ast.cpp.ICPPMethod;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPSpecialization; import org.eclipse.cdt.core.dom.ast.cpp.ICPPSpecialization;
@ -75,6 +76,7 @@ import org.eclipse.cdt.ui.CUIPlugin;
import org.eclipse.cdt.internal.core.dom.parser.ASTNode; import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPVisitor; import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPVisitor;
import org.eclipse.cdt.internal.core.index.IIndexFragmentName;
import org.eclipse.cdt.internal.core.model.ASTCache.ASTRunnable; import org.eclipse.cdt.internal.core.model.ASTCache.ASTRunnable;
import org.eclipse.cdt.internal.core.model.ext.CElementHandleFactory; import org.eclipse.cdt.internal.core.model.ext.CElementHandleFactory;
import org.eclipse.cdt.internal.core.model.ext.ICElementHandle; import org.eclipse.cdt.internal.core.model.ext.ICElementHandle;
@ -88,10 +90,8 @@ import org.eclipse.cdt.internal.ui.viewsupport.IndexUI;
public class OpenDeclarationsAction extends SelectionParseAction implements ASTRunnable { public class OpenDeclarationsAction extends SelectionParseAction implements ASTRunnable {
public static boolean sIsJUnitTest = false; public static boolean sIsJUnitTest = false;
private static final int KIND_OTHER = 0; private enum NameKind { REFERENCE, DECLARATION, USING_DECL, DEFINITION }
private static final int KIND_USING_DECL = 1;
private static final int KIND_DEFINITION = 2;
private class WrapperJob extends Job { private class WrapperJob extends Job {
WrapperJob() { WrapperJob() {
@ -158,19 +158,19 @@ public class OpenDeclarationsAction extends SelectionParseAction implements ASTR
final IASTNodeSelector nodeSelector = ast.getNodeSelector(null); final IASTNodeSelector nodeSelector = ast.getNodeSelector(null);
IASTName searchName= nodeSelector.findEnclosingName(selectionStart, selectionLength); IASTName sourceName= nodeSelector.findEnclosingName(selectionStart, selectionLength);
if (searchName == null) { if (sourceName == null) {
IASTName implicit = nodeSelector.findEnclosingImplicitName(selectionStart, selectionLength); IASTName implicit = nodeSelector.findEnclosingImplicitName(selectionStart, selectionLength);
if (implicit != null) { if (implicit != null) {
IASTImplicitNameOwner owner = (IASTImplicitNameOwner) implicit.getParent(); IASTImplicitNameOwner owner = (IASTImplicitNameOwner) implicit.getParent();
IASTImplicitName[] implicits = owner.getImplicitNames(); IASTImplicitName[] implicits = owner.getImplicitNames();
// there may be more than one name in the same spot // There may be more than one name in the same spot
if (implicits.length > 0) { if (implicits.length > 0) {
List<IName> allNames = new ArrayList<IName>(); List<IName> allNames = new ArrayList<IName>();
for (IASTImplicitName name : implicits) { for (IASTImplicitName name : implicits) {
if (((ASTNode) name).getOffset() == ((ASTNode) implicit).getOffset()) { if (((ASTNode) name).getOffset() == ((ASTNode) implicit).getOffset()) {
IBinding binding = name.resolveBinding(); // guaranteed to resolve IBinding binding = name.resolveBinding(); // guaranteed to resolve
IName[] declNames = findDeclNames(ast, KIND_OTHER, binding); IName[] declNames = findDeclNames(ast, NameKind.REFERENCE, binding);
allNames.addAll(Arrays.asList(declNames)); allNames.addAll(Arrays.asList(declNames));
} }
} }
@ -180,32 +180,31 @@ public class OpenDeclarationsAction extends SelectionParseAction implements ASTR
} }
} else { } else {
boolean found= false; boolean found= false;
final IASTNode parent = searchName.getParent(); final IASTNode parent = sourceName.getParent();
if (parent instanceof IASTPreprocessorIncludeStatement) { if (parent instanceof IASTPreprocessorIncludeStatement) {
openInclude(((IASTPreprocessorIncludeStatement) parent)); openInclude(((IASTPreprocessorIncludeStatement) parent));
return Status.OK_STATUS; return Status.OK_STATUS;
} }
IBinding binding = searchName.resolveBinding(); IBinding binding = sourceName.resolveBinding();
int isKind= KIND_OTHER; NameKind kind = getNameKind(sourceName);
if (searchName.isDefinition()) {
if (binding instanceof ICPPUsingDeclaration) {
isKind= KIND_USING_DECL;
} else {
isKind= KIND_DEFINITION;
}
}
if (binding != null && !(binding instanceof IProblemBinding)) { if (binding != null && !(binding instanceof IProblemBinding)) {
IName[] declNames = findDeclNames(ast, isKind, binding); if (kind == NameKind.DEFINITION && binding instanceof IType) {
// Don't navigate away from a type definition.
// Select the name at the current location instead.
navigateToName(sourceName);
return Status.OK_STATUS;
}
IName[] declNames = findDeclNames(ast, kind, binding);
// Exclude the current location. // Exclude the current location.
for (int i = 0; i < declNames.length; i++) { for (int i = 0; i < declNames.length; i++) {
if (isSameName(declNames[i], searchName)) { if (isSameName(declNames[i], sourceName)) {
declNames[i] = null; declNames[i] = null;
} else if (binding instanceof IParameter) { } else if (binding instanceof IParameter) {
if (!isInSameFunction(searchName, declNames[i])) { if (!isInSameFunction(sourceName, declNames[i])) {
declNames[i] = null; declNames[i] = null;
} }
} else if (binding instanceof ICPPTemplateParameter) { } else if (binding instanceof ICPPTemplateParameter) {
if (!isInSameTemplate(searchName, declNames[i])) { if (!isInSameTemplate(sourceName, declNames[i])) {
declNames[i] = null; declNames[i] = null;
} }
} }
@ -220,59 +219,85 @@ public class OpenDeclarationsAction extends SelectionParseAction implements ASTR
found = navigateOneLocation(declNames); found = navigateOneLocation(declNames);
} }
} }
if (!found && !navigationFallBack(ast, searchName, isKind)) { if (!found && !navigationFallBack(ast, sourceName, kind)) {
reportSymbolLookupFailure(new String(searchName.toCharArray())); reportSymbolLookupFailure(new String(sourceName.toCharArray()));
} }
return Status.OK_STATUS; return Status.OK_STATUS;
} }
// no enclosing name, check if we're in an include statement // No enclosing name, check if we're in an include statement
IASTNode node= nodeSelector.findEnclosingNode(selectionStart, selectionLength); IASTNode node= nodeSelector.findEnclosingNode(selectionStart, selectionLength);
if (node instanceof IASTPreprocessorIncludeStatement) { if (node instanceof IASTPreprocessorIncludeStatement) {
openInclude((IASTPreprocessorIncludeStatement) node); openInclude((IASTPreprocessorIncludeStatement) node);
return Status.OK_STATUS; return Status.OK_STATUS;
} }
if (!navigationFallBack(ast, null, KIND_OTHER)) { if (!navigationFallBack(ast, null, NameKind.REFERENCE)) {
reportSelectionMatchFailure(); reportSelectionMatchFailure();
} }
return Status.OK_STATUS; return Status.OK_STATUS;
} }
private boolean isInSameFunction(IASTName name1, IName name2) { private static NameKind getNameKind(IName name) {
if (name.isDefinition()) {
if (getBinding(name) instanceof ICPPUsingDeclaration) {
return NameKind.USING_DECL;
} else {
return NameKind.DEFINITION;
}
} else if (name.isDeclaration()) {
return NameKind.DECLARATION;
}
return NameKind.REFERENCE;
}
private static IBinding getBinding(IName name) {
if (name instanceof IASTName) {
return ((IASTName) name).resolveBinding();
} else if (name instanceof IIndexFragmentName) {
try {
return ((IIndexFragmentName) name).getBinding();
} catch (CoreException e) {
// Fall through to return null.
}
}
return null;
}
private static boolean isInSameFunction(IASTName name1, IName name2) {
IASTDeclaration decl1 = getEnclosingDeclaration(name1); IASTDeclaration decl1 = getEnclosingDeclaration(name1);
IASTDeclaration decl2 = name2 instanceof IASTName ? getEnclosingDeclaration((IASTName) name2) : null; IASTDeclaration decl2 = name2 instanceof IASTName ? getEnclosingDeclaration((IASTName) name2) : null;
return decl1 != null && decl1.equals(decl2) || decl1 == null && decl2 == null; return decl1 != null && decl1.equals(decl2) || decl1 == null && decl2 == null;
} }
private IASTDeclaration getEnclosingDeclaration(IASTNode node) { private static IASTDeclaration getEnclosingDeclaration(IASTNode node) {
while (node != null && !(node instanceof IASTDeclaration)) { while (node != null && !(node instanceof IASTDeclaration)) {
node= node.getParent(); node= node.getParent();
} }
return (IASTDeclaration) node; return (IASTDeclaration) node;
} }
private boolean isInSameTemplate(IASTName name1, IName name2) { private static boolean isInSameTemplate(IASTName name1, IName name2) {
IASTDeclaration decl1 = getEnclosingTemplateDeclaration(name1); IASTDeclaration decl1 = getEnclosingTemplateDeclaration(name1);
IASTDeclaration decl2 = name2 instanceof IASTName ? IASTDeclaration decl2 = name2 instanceof IASTName ?
getEnclosingTemplateDeclaration((IASTName) name2) : null; getEnclosingTemplateDeclaration((IASTName) name2) : null;
return decl1 != null && decl1.equals(decl2) || decl1 == null && decl2 == null; return decl1 != null && decl1.equals(decl2) || decl1 == null && decl2 == null;
} }
private IASTDeclaration getEnclosingTemplateDeclaration(IASTNode node) { private static IASTDeclaration getEnclosingTemplateDeclaration(IASTNode node) {
while (node != null && !(node instanceof ICPPASTTemplateDeclaration)) { while (node != null && !(node instanceof ICPPASTTemplateDeclaration)) {
node= node.getParent(); node= node.getParent();
} }
return (IASTDeclaration) node; return (IASTDeclaration) node;
} }
private IName[] findDeclNames(IASTTranslationUnit ast, int isKind, IBinding binding) throws CoreException { private IName[] findDeclNames(IASTTranslationUnit ast, NameKind kind, IBinding binding) throws CoreException {
IName[] declNames = findNames(fIndex, ast, isKind, binding); IName[] declNames = findNames(fIndex, ast, kind, binding);
if (declNames.length == 0) { if (declNames.length == 0) {
if (binding instanceof ICPPSpecialization) { if (binding instanceof ICPPSpecialization) {
// bug 207320, handle template instances // bug 207320, handle template instances
IBinding specialized= ((ICPPSpecialization) binding).getSpecializedBinding(); IBinding specialized= ((ICPPSpecialization) binding).getSpecializedBinding();
if (specialized != null && !(specialized instanceof IProblemBinding)) { if (specialized != null && !(specialized instanceof IProblemBinding)) {
declNames = findNames(fIndex, ast, KIND_DEFINITION, specialized); declNames = findNames(fIndex, ast, NameKind.DEFINITION, specialized);
} }
} else if (binding instanceof ICPPMethod) { } else if (binding instanceof ICPPMethod) {
// bug 86829, handle implicit methods. // bug 86829, handle implicit methods.
@ -281,7 +306,7 @@ public class OpenDeclarationsAction extends SelectionParseAction implements ASTR
try { try {
IBinding clsBinding= method.getClassOwner(); IBinding clsBinding= method.getClassOwner();
if (clsBinding != null && !(clsBinding instanceof IProblemBinding)) { if (clsBinding != null && !(clsBinding instanceof IProblemBinding)) {
declNames= findNames(fIndex, ast, KIND_OTHER, clsBinding); declNames= findNames(fIndex, ast, NameKind.REFERENCE, clsBinding);
} }
} catch (DOMException e) { } catch (DOMException e) {
// don't log problem bindings. // don't log problem bindings.
@ -292,7 +317,7 @@ public class OpenDeclarationsAction extends SelectionParseAction implements ASTR
return declNames; return declNames;
} }
private boolean navigationFallBack(IASTTranslationUnit ast, IASTName sourceName, int isKind) { private boolean navigationFallBack(IASTTranslationUnit ast, IASTName sourceName, NameKind kind) {
// bug 102643, as a fall-back we look up the selected word in the index // bug 102643, as a fall-back we look up the selected word in the index
if (fSelectedText != null && fSelectedText.length() > 0) { if (fSelectedText != null && fSelectedText.length() > 0) {
try { try {
@ -319,7 +344,7 @@ public class OpenDeclarationsAction extends SelectionParseAction implements ASTR
} }
} }
// search the index, also // Search the index, also
final IndexFilter filter = IndexFilter.getDeclaredBindingFilter(ast.getLinkage().getLinkageID(), false); final IndexFilter filter = IndexFilter.getDeclaredBindingFilter(ast.getLinkage().getLinkageID(), false);
final IIndexBinding[] idxBindings = fIndex.findBindings(name, false, filter, fMonitor); final IIndexBinding[] idxBindings = fIndex.findBindings(name, false, filter, fMonitor);
for (IIndexBinding idxBinding : idxBindings) { for (IIndexBinding idxBinding : idxBindings) {
@ -328,7 +353,7 @@ public class OpenDeclarationsAction extends SelectionParseAction implements ASTR
} }
} }
// search for a macro in the index // Search for a macro in the index
IIndexMacro[] macros= fIndex.findMacros(name, filter, fMonitor); IIndexMacro[] macros= fIndex.findMacros(name, filter, fMonitor);
for (IIndexMacro macro : macros) { for (IIndexMacro macro : macros) {
ICElement elem= IndexUI.getCElementForMacro(project, fIndex, macro); ICElement elem= IndexUI.getCElementForMacro(project, fIndex, macro);
@ -346,11 +371,11 @@ public class OpenDeclarationsAction extends SelectionParseAction implements ASTR
if (!Arrays.equals(qualifiedName, sourceQualifiedName)) { if (!Arrays.equals(qualifiedName, sourceQualifiedName)) {
continue; continue;
} }
IName[] names = findNames(fIndex, ast, isKind, binding); IName[] names = findNames(fIndex, ast, kind, binding);
// Exclude the current location. // Exclude the current location.
for (int i = 0; i < names.length; i++) { for (int i = 0; i < names.length; i++) {
if (sourceName != null && isSameName(names[i], sourceName)) { if (getNameKind(names[i]) == kind) {
names[i] = null; names[i] = null; // Don' navigate to a name of the same kind.
} }
} }
names = (IName[]) ArrayUtil.removeNulls(IName.class, names); names = (IName[]) ArrayUtil.removeNulls(IName.class, names);
@ -505,17 +530,17 @@ public class OpenDeclarationsAction extends SelectionParseAction implements ASTR
return null; return null;
} }
private IName[] findNames(IIndex index, IASTTranslationUnit ast, int isKind, IBinding binding) throws CoreException { private IName[] findNames(IIndex index, IASTTranslationUnit ast, NameKind kind, IBinding binding) throws CoreException {
IName[] declNames; IName[] declNames;
if (isKind == KIND_DEFINITION) { if (kind == NameKind.DEFINITION) {
declNames= findDeclarations(index, ast, binding); declNames= findDeclarations(index, ast, binding);
} else { } else {
declNames= findDefinitions(index, ast, isKind, binding); declNames= findDefinitions(index, ast, kind, binding);
} }
if (declNames.length == 0) { if (declNames.length == 0) {
if (isKind == KIND_DEFINITION) { if (kind == NameKind.DEFINITION) {
declNames= findDefinitions(index, ast, isKind, binding); declNames= findDefinitions(index, ast, kind, binding);
} else { } else {
declNames= findDeclarations(index, ast, binding); declNames= findDeclarations(index, ast, binding);
} }
@ -523,7 +548,7 @@ public class OpenDeclarationsAction extends SelectionParseAction implements ASTR
return declNames; return declNames;
} }
private IName[] findDefinitions(IIndex index, IASTTranslationUnit ast, int isKind, IBinding binding) throws CoreException { private IName[] findDefinitions(IIndex index, IASTTranslationUnit ast, NameKind kind, IBinding binding) throws CoreException {
List<IASTName> declNames= new ArrayList<IASTName>(); List<IASTName> declNames= new ArrayList<IASTName>();
declNames.addAll(Arrays.asList(ast.getDefinitionsInAST(binding))); declNames.addAll(Arrays.asList(ast.getDefinitionsInAST(binding)));
for (Iterator<IASTName> i = declNames.iterator(); i.hasNext();) { for (Iterator<IASTName> i = declNames.iterator(); i.hasNext();) {