mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-08 08:45:44 +02:00
Fine tuning of F3 navigation.
This commit is contained in:
parent
bf6979fc33
commit
1c29e6b4d6
5 changed files with 469 additions and 445 deletions
|
@ -80,10 +80,10 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
|
|||
|
||||
private void assertNode(String name, int offset, IASTNode node) {
|
||||
assertNotNull(node);
|
||||
assertEquals(name, node.toString());
|
||||
assertEquals(node.toString(), name);
|
||||
IASTFileLocation loc= node.getFileLocation();
|
||||
assertEquals(offset, loc.getNodeOffset());
|
||||
assertEquals(name.length(), loc.getNodeLength());
|
||||
assertEquals(loc.getNodeOffset(), offset);
|
||||
assertEquals(loc.getNodeLength(), name.length());
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
assertTrue(node instanceof IASTName);
|
||||
assertEquals("operator new[]", ((IASTName)node).toString()); //$NON-NLS-1$
|
||||
assertEquals(hcode.indexOf("operator new"), ((ASTNode)node).getOffset());
|
||||
assertEquals(16, ((ASTNode)node).getLength());
|
||||
assertEquals(((IASTName)node).toString(), "operator new[]"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)node).getOffset(), hcode.indexOf("operator new"));
|
||||
assertEquals(((ASTNode)node).getLength(), 16);
|
||||
|
||||
offset = scode.indexOf("p2-> operator") + 11; //$NON-NLS-1$
|
||||
node = testF3(file, offset);
|
||||
|
||||
assertTrue(node instanceof IASTName);
|
||||
assertEquals("operator =", ((IASTName)node).toString()); //$NON-NLS-1$
|
||||
assertEquals(hcode.indexOf("operator="), ((ASTNode)node).getOffset());
|
||||
assertEquals(9, ((ASTNode)node).getLength());
|
||||
assertEquals(((IASTName)node).toString(), "operator ="); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)node).getOffset(), hcode.indexOf("operator="));
|
||||
assertEquals(((ASTNode)node).getLength(), 9);
|
||||
}
|
||||
|
||||
// template <class T>
|
||||
|
@ -172,9 +172,9 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
|
|||
int soffset = scode.indexOf("testTemplate");
|
||||
IASTNode def = testF3(file, soffset+2);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertEquals(((IASTName)def).toString(), "testTemplate"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)def).getOffset(), hoffset);
|
||||
assertEquals(((ASTNode)def).getLength(), 12);
|
||||
assertEquals("testTemplate", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(hoffset, ((ASTNode) def).getOffset());
|
||||
assertEquals(12, ((ASTNode) def).getLength());
|
||||
}
|
||||
|
||||
// template<typename T>
|
||||
|
@ -198,9 +198,9 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
|
|||
int soffset = scode.indexOf("assign"); //$NON-NLS-1$
|
||||
IASTNode def = testF3(file, soffset + 2);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertEquals(((IASTName) def).toString(), "assign"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode) def).getOffset(), hoffset);
|
||||
assertEquals(((ASTNode) def).getLength(), 6);
|
||||
assertEquals("assign", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(hoffset, ((ASTNode) def).getOffset());
|
||||
assertEquals(6, ((ASTNode) def).getLength());
|
||||
}
|
||||
|
||||
// // the header
|
||||
|
@ -231,12 +231,12 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
|
|||
IASTNode def = testF3(hfile, hoffset+2);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "MyInt"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), hoffset);
|
||||
assertEquals(((ASTNode)decl).getLength(), 5);
|
||||
assertEquals(((IASTName)def).toString(), "MyInt"); //$NON-NLS-1$
|
||||
assertEquals("MyInt", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(hoffset, ((ASTNode) decl).getOffset());
|
||||
assertEquals(5, ((ASTNode) decl).getLength());
|
||||
assertEquals("MyInt", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(soffset, def.getFileLocation().getNodeOffset());
|
||||
assertEquals(((ASTNode)def).getLength(), 5);
|
||||
assertEquals(5, ((ASTNode) def).getLength());
|
||||
|
||||
hoffset= hcode.indexOf("MyConst");
|
||||
soffset = scode.indexOf("MyConst");
|
||||
|
@ -244,12 +244,12 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
|
|||
def = testF3(hfile, hoffset+2);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "MyConst"); //$NON-NLS-1$
|
||||
assertEquals(hoffset, ((ASTNode)decl).getOffset());
|
||||
assertEquals(((ASTNode)decl).getLength(), 7);
|
||||
assertEquals(((IASTName)def).toString(), "MyConst"); //$NON-NLS-1$
|
||||
assertEquals("MyConst", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(hoffset, ((ASTNode) decl).getOffset());
|
||||
assertEquals(7, ((ASTNode) decl).getLength());
|
||||
assertEquals("MyConst", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(soffset, def.getFileLocation().getNodeOffset());
|
||||
assertEquals(((ASTNode)def).getLength(), 7);
|
||||
assertEquals(7, ((ASTNode) def).getLength());
|
||||
|
||||
hoffset= hcode.indexOf("MyFunc");
|
||||
soffset = scode.indexOf("MyFunc");
|
||||
|
@ -257,12 +257,12 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
|
|||
def = testF3(hfile, hoffset+2);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "MyFunc"); //$NON-NLS-1$
|
||||
assertEquals(hoffset, ((ASTNode)decl).getOffset());
|
||||
assertEquals(((ASTNode)decl).getLength(), 6);
|
||||
assertEquals(((IASTName)def).toString(), "MyFunc"); //$NON-NLS-1$
|
||||
assertEquals("MyFunc", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(hoffset, ((ASTNode) decl).getOffset());
|
||||
assertEquals(6, ((ASTNode) decl).getLength());
|
||||
assertEquals("MyFunc", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(soffset, def.getFileLocation().getNodeOffset());
|
||||
assertEquals(((ASTNode)def).getLength(), 6);
|
||||
assertEquals(6, ((ASTNode) def).getLength());
|
||||
|
||||
hoffset= hcode.indexOf("MyStruct");
|
||||
soffset = scode.indexOf("MyStruct");
|
||||
|
@ -270,12 +270,12 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
|
|||
def = testF3(hfile, hoffset+2);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "MyStruct"); //$NON-NLS-1$
|
||||
assertEquals(hoffset, ((ASTNode)decl).getOffset());
|
||||
assertEquals(((ASTNode)decl).getLength(), 8);
|
||||
assertEquals(((IASTName)def).toString(), "MyStruct"); //$NON-NLS-1$
|
||||
assertEquals(soffset, def.getFileLocation().getNodeOffset());
|
||||
assertEquals(((ASTNode)def).getLength(), 8);
|
||||
assertEquals("MyStruct", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(hoffset, ((ASTNode) decl).getOffset());
|
||||
assertEquals(8, ((ASTNode) decl).getLength());
|
||||
assertEquals("MyStruct", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(hoffset, def.getFileLocation().getNodeOffset());
|
||||
assertEquals(8, ((ASTNode) def).getLength());
|
||||
|
||||
hoffset= hcode.indexOf("MyClass");
|
||||
soffset = scode.indexOf("MyClass");
|
||||
|
@ -283,12 +283,12 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
|
|||
def = testF3(hfile, hoffset+2);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "MyClass"); //$NON-NLS-1$
|
||||
assertEquals(hoffset, ((ASTNode)decl).getOffset());
|
||||
assertEquals(((ASTNode)decl).getLength(), 7);
|
||||
assertEquals(((IASTName)def).toString(), "MyClass"); //$NON-NLS-1$
|
||||
assertEquals(soffset, def.getFileLocation().getNodeOffset());
|
||||
assertEquals(((ASTNode)def).getLength(), 7);
|
||||
assertEquals("MyClass", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(hoffset, ((ASTNode) decl).getOffset());
|
||||
assertEquals(7, ((ASTNode) decl).getLength());
|
||||
assertEquals("MyClass", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(hoffset, def.getFileLocation().getNodeOffset());
|
||||
assertEquals(7, ((ASTNode) def).getLength());
|
||||
}
|
||||
|
||||
// // the header
|
||||
|
@ -310,14 +310,14 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
|
|||
int soffset = scode.indexOf("AAA<int>"); //$NON-NLS-1$
|
||||
IASTNode decl1 = testF3(file, soffset, 3);
|
||||
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(((ASTNode)decl1).getLength(), 3);
|
||||
assertEquals(3, ((ASTNode) decl1).getLength());
|
||||
|
||||
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(((ASTNode)decl2).getLength(), 3);
|
||||
assertEquals(3, ((ASTNode) decl2).getLength());
|
||||
}
|
||||
|
||||
// // the header
|
||||
|
@ -344,9 +344,9 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
|
|||
int doffset= hcode.indexOf("X(int)");
|
||||
IASTNode decl = testF3(file, offset);
|
||||
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(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
}
|
||||
|
||||
// // the header
|
||||
|
@ -376,9 +376,9 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
|
|||
int doffset = hcode.indexOf("X()");
|
||||
IASTNode decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals("X", decl.toString());
|
||||
assertEquals(decl.toString(), "X");
|
||||
assertEquals(doffset, decl.getFileLocation().getNodeOffset());
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
}
|
||||
|
||||
// // the header
|
||||
|
@ -453,7 +453,7 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
|
|||
offset1= scode.indexOf("S;");
|
||||
int offset2= scode.indexOf("S", offset1);
|
||||
decl= testF3(hfile, offset0);
|
||||
assertNode("S", offset1, decl);
|
||||
assertNode("S", offset0, decl);
|
||||
decl= testF3(file, offset1);
|
||||
assertNode("S", offset0, decl);
|
||||
decl= testF3(file, offset2);
|
||||
|
@ -1001,7 +1001,7 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
|
|||
testF3(file, offset1);
|
||||
IEditorPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
|
||||
IEditorInput input = part.getEditorInput();
|
||||
assertEquals("aheader.h", ((FileEditorInput)input).getFile().getName());
|
||||
assertEquals("aheader.h", ((FileEditorInput) input).getFile().getName());
|
||||
}
|
||||
|
||||
// void cfunc();
|
||||
|
@ -1028,18 +1028,18 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
|
|||
testF3(cppfile, offset1);
|
||||
IEditorPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
|
||||
IEditorInput input = part.getEditorInput();
|
||||
assertEquals("s.c", ((FileEditorInput)input).getFile().getName());
|
||||
assertEquals("s.c", ((FileEditorInput) input).getFile().getName());
|
||||
|
||||
testF3(cppfile, offset2);
|
||||
part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
|
||||
input = part.getEditorInput();
|
||||
assertEquals("s.c", ((FileEditorInput)input).getFile().getName());
|
||||
assertEquals("s.c", ((FileEditorInput) input).getFile().getName());
|
||||
|
||||
offset1 = ccode.indexOf("cxcpp");
|
||||
testF3(cfile, offset1);
|
||||
part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
|
||||
input = part.getEditorInput();
|
||||
assertEquals("s.cpp", ((FileEditorInput)input).getFile().getName());
|
||||
assertEquals("s.cpp", ((FileEditorInput) input).getFile().getName());
|
||||
}
|
||||
|
||||
// void cxcpp();
|
||||
|
@ -1066,18 +1066,18 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
|
|||
testF3(cfile, offset1);
|
||||
IEditorPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
|
||||
IEditorInput input = part.getEditorInput();
|
||||
assertEquals("s.cpp", ((FileEditorInput)input).getFile().getName());
|
||||
assertEquals("s.cpp", ((FileEditorInput) input).getFile().getName());
|
||||
|
||||
testF3(cfile, offset2);
|
||||
part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
|
||||
input = part.getEditorInput();
|
||||
assertEquals("s.cpp", ((FileEditorInput)input).getFile().getName());
|
||||
assertEquals("s.cpp", ((FileEditorInput) input).getFile().getName());
|
||||
|
||||
offset1 = scode.indexOf("cxcpp");
|
||||
testF3(cppfile, offset1);
|
||||
part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
|
||||
input = part.getEditorInput();
|
||||
assertEquals("s.c", ((FileEditorInput)input).getFile().getName());
|
||||
assertEquals("s.c", ((FileEditorInput) input).getFile().getName());
|
||||
}
|
||||
|
||||
// #define ADD_TEXT(txt1,txt2) txt1" "txt2
|
||||
|
@ -1169,8 +1169,8 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
|
|||
int soffset = scode.indexOf("+"); //$NON-NLS-1$
|
||||
IASTNode def = testF3(file, soffset + 1);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertEquals(((IASTName) def).toString(), "operator +"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode) def).getOffset(), hoffset);
|
||||
assertEquals(((ASTNode) def).getLength(), 9);
|
||||
assertEquals("operator +", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(hoffset, ((ASTNode) def).getOffset());
|
||||
assertEquals(9, ((ASTNode) def).getLength());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -314,17 +314,17 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
|
|||
IASTNode node = testF3(file, offset);
|
||||
|
||||
assertTrue(node instanceof IASTName);
|
||||
assertEquals(((IASTName)node).toString(), "operator new[]"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)node).getOffset(), 183);
|
||||
assertEquals(((ASTNode)node).getLength(), 16);
|
||||
assertEquals("operator new[]", ((IASTName)node).toString()); //$NON-NLS-1$
|
||||
assertEquals(183, ((ASTNode)node).getOffset());
|
||||
assertEquals(16, ((ASTNode)node).getLength());
|
||||
|
||||
offset = code.indexOf("p2-> operator") + 11; //$NON-NLS-1$
|
||||
node = testF3(file, offset);
|
||||
|
||||
assertTrue(node instanceof IASTName);
|
||||
assertEquals(((IASTName)node).toString(), "operator ="); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)node).getOffset(), 121);
|
||||
assertEquals(((ASTNode)node).getLength(), 9);
|
||||
assertEquals("operator =", ((IASTName)node).toString()); //$NON-NLS-1$
|
||||
assertEquals(121, ((ASTNode)node).getOffset());
|
||||
assertEquals(9, ((ASTNode)node).getLength());
|
||||
}
|
||||
|
||||
public void testBasicDefinition() throws Exception {
|
||||
|
@ -350,12 +350,12 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
|
|||
IASTNode decl = testF3(file, defOffset);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "MyInt"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 11);
|
||||
assertEquals(((ASTNode)decl).getLength(), 5);
|
||||
assertEquals(((IASTName)def).toString(), "MyInt"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)def).getOffset(), 330);
|
||||
assertEquals(((ASTNode)def).getLength(), 5);
|
||||
assertEquals("MyInt", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(11, ((ASTNode) decl).getOffset());
|
||||
assertEquals(5, ((ASTNode) decl).getLength());
|
||||
assertEquals("MyInt", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(330, ((ASTNode) def).getOffset());
|
||||
assertEquals(5, ((ASTNode) def).getLength());
|
||||
|
||||
offset= code.indexOf("MyConst") + 2;
|
||||
defOffset= code.indexOf("MyConst", offset) + 2;
|
||||
|
@ -363,12 +363,12 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
|
|||
decl = testF3(file, defOffset);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "MyConst"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 69);
|
||||
assertEquals(((ASTNode)decl).getLength(), 7);
|
||||
assertEquals(((IASTName)def).toString(), "MyConst"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)def).getOffset(), 354);
|
||||
assertEquals(((ASTNode)def).getLength(), 7);
|
||||
assertEquals("MyConst", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(69, ((ASTNode) decl).getOffset());
|
||||
assertEquals(7, ((ASTNode) decl).getLength());
|
||||
assertEquals("MyConst", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(354, ((ASTNode) def).getOffset());
|
||||
assertEquals(7, ((ASTNode) def).getLength());
|
||||
|
||||
offset= code.indexOf("MyFunc") + 2;
|
||||
defOffset= code.indexOf("MyFunc", offset) + 2;
|
||||
|
@ -376,12 +376,12 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
|
|||
decl = testF3(file, defOffset);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "MyFunc"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 115);
|
||||
assertEquals(((ASTNode)decl).getLength(), 6);
|
||||
assertEquals(((IASTName)def).toString(), "MyFunc"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)def).getOffset(), 373);
|
||||
assertEquals(((ASTNode)def).getLength(), 6);
|
||||
assertEquals("MyFunc", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(115, ((ASTNode) decl).getOffset());
|
||||
assertEquals(6, ((ASTNode) decl).getLength());
|
||||
assertEquals("MyFunc", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(373, ((ASTNode) def).getOffset());
|
||||
assertEquals(6, ((ASTNode) def).getLength());
|
||||
|
||||
offset= code.indexOf("MyStruct") + 2;
|
||||
defOffset= code.indexOf("MyStruct", offset) + 2;
|
||||
|
@ -389,12 +389,12 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
|
|||
decl = testF3(file, defOffset);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "MyStruct"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 171);
|
||||
assertEquals(((ASTNode)decl).getLength(), 8);
|
||||
assertEquals(((IASTName)def).toString(), "MyStruct"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)def).getOffset(), 417);
|
||||
assertEquals(((ASTNode)def).getLength(), 8);
|
||||
assertEquals("MyStruct", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(417, ((ASTNode) decl).getOffset());
|
||||
assertEquals(8, ((ASTNode) decl).getLength());
|
||||
assertEquals("MyStruct", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(417, ((ASTNode) def).getOffset());
|
||||
assertEquals(8, ((ASTNode) def).getLength());
|
||||
|
||||
offset= code.indexOf("MyClass") + 2;
|
||||
defOffset= code.indexOf("MyClass", offset) + 2;
|
||||
|
@ -402,12 +402,12 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
|
|||
decl = testF3(file, defOffset);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "MyClass"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 278);
|
||||
assertEquals(((ASTNode)decl).getLength(), 7);
|
||||
assertEquals(((IASTName)def).toString(), "MyClass"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)def).getOffset(), 463);
|
||||
assertEquals(((ASTNode)def).getLength(), 7);
|
||||
assertEquals("MyClass", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(463, ((ASTNode) decl).getOffset());
|
||||
assertEquals(7, ((ASTNode) decl).getLength());
|
||||
assertEquals("MyClass", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(463, ((ASTNode) def).getOffset());
|
||||
assertEquals(7, ((ASTNode) def).getLength());
|
||||
}
|
||||
|
||||
public void testBug95224() throws Exception{
|
||||
|
@ -424,9 +424,9 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
|
|||
int offset = code.indexOf("A(); // open definition "); //$NON-NLS-1$
|
||||
IASTNode decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "~A"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 65);
|
||||
assertEquals(((ASTNode)decl).getLength(), 2);
|
||||
assertEquals("~A", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(65, ((ASTNode) decl).getOffset());
|
||||
assertEquals(2, ((ASTNode) decl).getLength());
|
||||
}
|
||||
|
||||
public void testBasicTemplateInstance() throws Exception{
|
||||
|
@ -442,15 +442,15 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
|
|||
int offset = code.indexOf("AAA<int>"); //$NON-NLS-1$
|
||||
IASTNode decl1 = testF3(file, offset, 3);
|
||||
assertTrue(decl1 instanceof IASTName);
|
||||
assertEquals(((IASTName)decl1).toString(), "AAA"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl1).getOffset(), 74);
|
||||
assertEquals(((ASTNode)decl1).getLength(), 3);
|
||||
assertEquals("AAA", ((IASTName) decl1).toString()); //$NON-NLS-1$
|
||||
assertEquals(74, ((ASTNode) decl1).getOffset());
|
||||
assertEquals(3, ((ASTNode) decl1).getLength());
|
||||
|
||||
IASTNode decl2 = testF3(file, offset, 8);
|
||||
assertTrue(decl2 instanceof IASTName);
|
||||
assertEquals(((IASTName)decl2).toString(), "AAA"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl2).getOffset(), 74);
|
||||
assertEquals(((ASTNode)decl2).getLength(), 3);
|
||||
assertEquals("AAA", ((IASTName) decl2).toString()); //$NON-NLS-1$
|
||||
assertEquals(74, ((ASTNode) decl2).getOffset());
|
||||
assertEquals(3, ((ASTNode) decl2).getLength());
|
||||
}
|
||||
|
||||
public void testBug86829A() throws Exception {
|
||||
|
@ -471,9 +471,9 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
|
|||
int offset = code.indexOf("X(2)"); //$NON-NLS-1$
|
||||
IASTNode decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "X"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 18);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("X", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(18, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
}
|
||||
|
||||
public void testBug86829B() throws Exception {
|
||||
|
@ -497,9 +497,9 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
|
|||
int offset = code.indexOf("X(a);"); //$NON-NLS-1$
|
||||
IASTNode decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "X"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 6);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("X", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(6, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
}
|
||||
|
||||
// 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$
|
||||
IASTNode decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "a"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 512);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("a", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(512, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("c = 1; // defines c"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "c"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 546);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("c", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(546, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("f(int x) { return x+a; } // defines f and defines x"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "f"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 567);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("f", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(567, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("x) { return x+a; } // defines f and defines x"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 67);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(67, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("x+a; } // defines f and defines x"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 67);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(67, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("x+a; } // defines f and defines x"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 67);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(67, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("a; } // defines f and defines x"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "a"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 4);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("a", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(4, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("S { int a; int b; }; // defines S, S::a, and S::b"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "S"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 596);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("S", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(120, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("a; int b; }; // defines S, S::a, and S::b"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "a"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 128);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("a", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(128, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("b; }; // defines S, S::a, and S::b"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "b"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 135);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("b", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(135, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("X { // defines X"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "X"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 177);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("X", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(177, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("x; // defines nonstatic data member x"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 198);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(198, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
IASTNode def;
|
||||
offset = code.indexOf("y; // declares static data member y"); //$NON-NLS-1$
|
||||
def = testF3(file, offset);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertEquals(((IASTName)def).toString(), "y"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)def).getOffset(), 337);
|
||||
assertEquals(((ASTNode)def).getLength(), 1);
|
||||
assertEquals("y", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(337, ((ASTNode) def).getOffset());
|
||||
assertEquals(1, ((ASTNode) def).getLength());
|
||||
|
||||
offset = code.indexOf("X(): x(0) { } // defines a constructor of X"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "X"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 283);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("X", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(283, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("x(0) { } // defines a constructor of X"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 198);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(198, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("X::y = 1; // defines X::y"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "X"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 177);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("X", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(177, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("y = 1; // defines X::y"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "y"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 247);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("y", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(247, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("up, down }; // defines up and down"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "up"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 367);
|
||||
assertEquals(((ASTNode)decl).getLength(), 2);
|
||||
assertEquals("up", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(367, ((ASTNode) decl).getOffset());
|
||||
assertEquals(2, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("down }; // defines up and down"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "down"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 371);
|
||||
assertEquals(((ASTNode)decl).getLength(), 4);
|
||||
assertEquals("down", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(371, ((ASTNode) decl).getOffset());
|
||||
assertEquals(4, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("N { int d; } // defines N and N::d"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "N"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 412);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("N", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(412, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("d; } // defines N and N::d"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "d"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 420);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("d", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(420, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("N1 = N; // defines N1"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "N1"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 457);
|
||||
assertEquals(((ASTNode)decl).getLength(), 2);
|
||||
assertEquals("N1", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(457, ((ASTNode) decl).getOffset());
|
||||
assertEquals(2, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("N; // defines N1"); //$NON-NLS-1$
|
||||
def = testF3(file, offset);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertEquals(((IASTName)def).toString(), "N"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)def).getOffset(), 412);
|
||||
assertEquals(((ASTNode)def).getLength(), 1);
|
||||
assertEquals("N", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(412, ((ASTNode) def).getOffset());
|
||||
assertEquals(1, ((ASTNode) def).getLength());
|
||||
|
||||
offset = code.indexOf("X anX; // defines anX"); //$NON-NLS-1$
|
||||
def = testF3(file, offset);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertEquals(((IASTName)def).toString(), "X"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)def).getOffset(), 177);
|
||||
assertEquals(((ASTNode)def).getLength(), 1);
|
||||
assertEquals("X", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(177, ((ASTNode) def).getOffset());
|
||||
assertEquals(1, ((ASTNode) def).getLength());
|
||||
|
||||
offset = code.indexOf("anX; // defines anX"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "anX"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 481);
|
||||
assertEquals(((ASTNode)decl).getLength(), 3);
|
||||
assertEquals("anX", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(481, ((ASTNode) decl).getOffset());
|
||||
assertEquals(3, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("a; // declares a"); //$NON-NLS-1$
|
||||
def = testF3(file, offset);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertEquals(((IASTName)def).toString(), "a"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)def).getOffset(), 4);
|
||||
assertEquals(((ASTNode)def).getLength(), 1);
|
||||
assertEquals("a", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(4, ((ASTNode) def).getOffset());
|
||||
assertEquals(1, ((ASTNode) def).getLength());
|
||||
|
||||
offset = code.indexOf("c; // declares c"); //$NON-NLS-1$
|
||||
def = testF3(file, offset);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertEquals(((IASTName)def).toString(), "c"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)def).getOffset(), 37);
|
||||
assertEquals(((ASTNode)def).getLength(), 1);
|
||||
assertEquals("c", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(37, ((ASTNode) def).getOffset());
|
||||
assertEquals(1, ((ASTNode) def).getLength());
|
||||
|
||||
offset = code.indexOf("f(int y); // declar f"); //$NON-NLS-1$
|
||||
def = testF3(file, offset);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertEquals(((IASTName)def).toString(), "f"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)def).getOffset(), 61);
|
||||
assertEquals(((ASTNode)def).getLength(), 1);
|
||||
assertEquals("f", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(61, ((ASTNode) def).getOffset());
|
||||
assertEquals(1, ((ASTNode) def).getLength());
|
||||
|
||||
offset = code.indexOf("S; // declares S"); //$NON-NLS-1$
|
||||
def = testF3(file, offset);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertEquals(((IASTName)def).toString(), "S"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)def).getOffset(), 120);
|
||||
assertEquals(((ASTNode)def).getLength(), 1);
|
||||
assertEquals("S", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(120, ((ASTNode) def).getOffset());
|
||||
assertEquals(1, ((ASTNode) def).getLength());
|
||||
|
||||
offset = code.indexOf("Int; // declares Int"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "Int"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 625);
|
||||
assertEquals(((ASTNode)decl).getLength(), 3);
|
||||
assertEquals("Int", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(625, ((ASTNode) decl).getOffset());
|
||||
assertEquals(3, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("X anotherX; // declares anotherX"); //$NON-NLS-1$
|
||||
def = testF3(file, offset);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertEquals(((IASTName)def).toString(), "X"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)def).getOffset(), 177);
|
||||
assertEquals(((ASTNode)def).getLength(), 1);
|
||||
assertEquals("X", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(177, ((ASTNode) def).getOffset());
|
||||
assertEquals(1, ((ASTNode) def).getLength());
|
||||
|
||||
offset = code.indexOf("anotherX; // declares anotherX"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "anotherX"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 655);
|
||||
assertEquals(((ASTNode)decl).getLength(), 8);
|
||||
assertEquals("anotherX", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(655, ((ASTNode) decl).getOffset());
|
||||
assertEquals(8, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("N::d; // declares N::d"); //$NON-NLS-1$
|
||||
def = testF3(file, offset);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertEquals(((IASTName)def).toString(), "N"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)def).getOffset(), 412);
|
||||
assertEquals(((ASTNode)def).getLength(), 1);
|
||||
assertEquals("N", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(412, ((ASTNode) def).getOffset());
|
||||
assertEquals(1, ((ASTNode) def).getLength());
|
||||
|
||||
offset = code.indexOf("d; // declares N::d"); //$NON-NLS-1$
|
||||
def = testF3(file, offset);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertEquals(((IASTName)def).toString(), "d"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)def).getOffset(), 420);
|
||||
assertEquals(((ASTNode)def).getLength(), 1);
|
||||
assertEquals("d", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(420, ((ASTNode) def).getOffset());
|
||||
assertEquals(1, ((ASTNode) def).getLength());
|
||||
}
|
||||
|
||||
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$
|
||||
IASTNode decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "Overflow"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 25);
|
||||
assertEquals(((ASTNode)decl).getLength(), 8);
|
||||
assertEquals("Overflow", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(25, ((ASTNode) decl).getOffset());
|
||||
assertEquals(8, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("x,3.45e107);"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 72);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(72, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
}
|
||||
|
||||
public void testNoDefinitions() throws Exception {
|
||||
|
@ -845,37 +845,37 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
|
|||
int offset = code.indexOf("a1; // declares a"); //$NON-NLS-1$
|
||||
IASTNode decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "a1"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 11);
|
||||
assertEquals(((ASTNode)decl).getLength(), 2);
|
||||
assertEquals("a1", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(11, ((ASTNode) decl).getOffset());
|
||||
assertEquals(2, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("c1; // declares c"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "c1"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 46);
|
||||
assertEquals(((ASTNode)decl).getLength(), 2);
|
||||
assertEquals("c1", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(46, ((ASTNode) decl).getOffset());
|
||||
assertEquals(2, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("f1(int); // declares f"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "f1"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 68);
|
||||
assertEquals(((ASTNode)decl).getLength(), 2);
|
||||
assertEquals("f1", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(68, ((ASTNode) decl).getOffset());
|
||||
assertEquals(2, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("S1; // declares S"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "S1"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 98);
|
||||
assertEquals(((ASTNode)decl).getLength(), 2);
|
||||
assertEquals("S1", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(98, ((ASTNode) decl).getOffset());
|
||||
assertEquals(2, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("Int; // declares Int"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "Int"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 128);
|
||||
assertEquals(((ASTNode)decl).getLength(), 3);
|
||||
assertEquals("Int", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(128, ((ASTNode) decl).getOffset());
|
||||
assertEquals(3, ((ASTNode) decl).getLength());
|
||||
}
|
||||
|
||||
public void testBug95202() throws Exception {
|
||||
|
@ -895,9 +895,9 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
|
|||
int offset = code.indexOf("s); // wellformed"); //$NON-NLS-1$
|
||||
IASTNode decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "s"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 117);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("s", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(117, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
}
|
||||
|
||||
public void testBug95229() throws Exception {
|
||||
|
@ -915,9 +915,9 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
|
|||
int offset = code.indexOf("rator short(); // F3"); //$NON-NLS-1$
|
||||
IASTNode decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "operator short int"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 11);
|
||||
assertEquals(((ASTNode)decl).getLength(), 14);
|
||||
assertEquals("operator short int", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(11, ((ASTNode) decl).getOffset());
|
||||
assertEquals(14, ((ASTNode) decl).getLength());
|
||||
}
|
||||
|
||||
public void testBug78354() throws Exception {
|
||||
|
@ -937,9 +937,9 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
|
|||
int offset = code.indexOf("TestTypeOne myFirstLink = 5;"); //$NON-NLS-1$
|
||||
IASTNode decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "TestTypeOne"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 12);
|
||||
assertEquals(((ASTNode)decl).getLength(), 11);
|
||||
assertEquals("TestTypeOne", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(12, ((ASTNode) decl).getOffset());
|
||||
assertEquals(11, ((ASTNode) decl).getLength());
|
||||
}
|
||||
|
||||
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$
|
||||
IASTNode decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 4);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(4, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
}
|
||||
|
||||
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$
|
||||
IASTNode decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 4);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(4, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
}
|
||||
|
||||
// typedef int (*functionPointer)(int);
|
||||
|
@ -998,8 +998,8 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
|
|||
|
||||
IASTNode decl = testF3(file, or1);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "functionPointer"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), od1);
|
||||
assertEquals("functionPointer", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(od1, ((ASTNode) decl).getOffset());
|
||||
|
||||
IEditorPart editor= PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
|
||||
assertNotNull(editor);
|
||||
|
@ -1011,8 +1011,8 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
|
|||
|
||||
decl = testF3(file, code.length() + or2);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "functionPointerArray");
|
||||
assertEquals(((ASTNode)decl).getOffset(), code.length() + od2);
|
||||
assertEquals("functionPointerArray", ((IASTName) decl).toString());
|
||||
assertEquals(code.length() + od2, ((ASTNode) decl).getOffset());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1028,8 +1028,8 @@ public class CPPSelectionTestsNoIndexer extends BaseUITestCase {
|
|||
|
||||
IASTNode decl = testF3(file, or1);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "EMPTY"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), od1);
|
||||
assertEquals("EMPTY", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(od1, ((ASTNode) decl).getOffset());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -75,7 +75,7 @@ public abstract class CSelectionTestsAnyIndexer extends BaseSelectionTestsIndexe
|
|||
|
||||
private void assertNode(String name, int offset, IASTNode node) {
|
||||
assertNotNull(node);
|
||||
assertEquals(name, node.toString());
|
||||
assertEquals(node.toString(), name);
|
||||
IASTFileLocation loc= node.getFileLocation();
|
||||
assertEquals(offset, loc.getNodeOffset());
|
||||
assertEquals(name.length(), loc.getNodeLength());
|
||||
|
@ -107,12 +107,12 @@ public abstract class CSelectionTestsAnyIndexer extends BaseSelectionTestsIndexe
|
|||
IASTNode def = testF3(hfile, hoffset+2);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "MyInt"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), hoffset);
|
||||
assertEquals(((ASTNode)decl).getLength(), 5);
|
||||
assertEquals(((IASTName)def).toString(), "MyInt"); //$NON-NLS-1$
|
||||
assertEquals("MyInt", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(hoffset, ((ASTNode) decl).getOffset());
|
||||
assertEquals(5, ((ASTNode) decl).getLength());
|
||||
assertEquals("MyInt", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(soffset, def.getFileLocation().getNodeOffset());
|
||||
assertEquals(((ASTNode)def).getLength(), 5);
|
||||
assertEquals(5, ((ASTNode) def).getLength());
|
||||
|
||||
hoffset= hcode.indexOf("MyConst");
|
||||
soffset = scode.indexOf("MyConst");
|
||||
|
@ -120,12 +120,12 @@ public abstract class CSelectionTestsAnyIndexer extends BaseSelectionTestsIndexe
|
|||
def = testF3(hfile, hoffset+2);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "MyConst"); //$NON-NLS-1$
|
||||
assertEquals(hoffset, ((ASTNode)decl).getOffset());
|
||||
assertEquals(((ASTNode)decl).getLength(), 7);
|
||||
assertEquals(((IASTName)def).toString(), "MyConst"); //$NON-NLS-1$
|
||||
assertEquals("MyConst", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(hoffset, ((ASTNode) decl).getOffset());
|
||||
assertEquals(7, ((ASTNode) decl).getLength());
|
||||
assertEquals("MyConst", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(soffset, def.getFileLocation().getNodeOffset());
|
||||
assertEquals(((ASTNode)def).getLength(), 7);
|
||||
assertEquals(7, ((ASTNode) def).getLength());
|
||||
|
||||
hoffset= hcode.indexOf("MyFunc");
|
||||
soffset = scode.indexOf("MyFunc");
|
||||
|
@ -133,12 +133,12 @@ public abstract class CSelectionTestsAnyIndexer extends BaseSelectionTestsIndexe
|
|||
def = testF3(hfile, hoffset+2);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "MyFunc"); //$NON-NLS-1$
|
||||
assertEquals(hoffset, ((ASTNode)decl).getOffset());
|
||||
assertEquals(((ASTNode)decl).getLength(), 6);
|
||||
assertEquals(((IASTName)def).toString(), "MyFunc"); //$NON-NLS-1$
|
||||
assertEquals("MyFunc", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(hoffset, ((ASTNode) decl).getOffset());
|
||||
assertEquals(6, ((ASTNode) decl).getLength());
|
||||
assertEquals("MyFunc", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(soffset, def.getFileLocation().getNodeOffset());
|
||||
assertEquals(((ASTNode)def).getLength(), 6);
|
||||
assertEquals(6, ((ASTNode) def).getLength());
|
||||
|
||||
hoffset= hcode.indexOf("MyStruct");
|
||||
soffset = scode.indexOf("MyStruct");
|
||||
|
@ -146,12 +146,12 @@ public abstract class CSelectionTestsAnyIndexer extends BaseSelectionTestsIndexe
|
|||
def = testF3(hfile, hoffset+2);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "MyStruct"); //$NON-NLS-1$
|
||||
assertEquals(hoffset, ((ASTNode)decl).getOffset());
|
||||
assertEquals(((ASTNode)decl).getLength(), 8);
|
||||
assertEquals(((IASTName)def).toString(), "MyStruct"); //$NON-NLS-1$
|
||||
assertEquals(soffset, def.getFileLocation().getNodeOffset());
|
||||
assertEquals(((ASTNode)def).getLength(), 8);
|
||||
assertEquals("MyStruct", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(hoffset, ((ASTNode) decl).getOffset());
|
||||
assertEquals(8, ((ASTNode) decl).getLength());
|
||||
assertEquals("MyStruct", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(hoffset, def.getFileLocation().getNodeOffset());
|
||||
assertEquals(8, ((ASTNode) def).getLength());
|
||||
}
|
||||
|
||||
|
||||
|
@ -221,7 +221,7 @@ public abstract class CSelectionTestsAnyIndexer extends BaseSelectionTestsIndexe
|
|||
offset1= scode.indexOf("S;");
|
||||
int offset2= scode.indexOf("S", offset1);
|
||||
decl= testF3(hfile, offset0);
|
||||
assertNode("S", offset1, decl);
|
||||
assertNode("S", offset0, decl);
|
||||
decl= testF3(file, offset1);
|
||||
assertNode("S", offset0, decl);
|
||||
decl= testF3(file, offset2);
|
||||
|
@ -497,7 +497,7 @@ public abstract class CSelectionTestsAnyIndexer extends BaseSelectionTestsIndexe
|
|||
testF3(file, offset1);
|
||||
IEditorPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
|
||||
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))
|
||||
|
@ -517,7 +517,7 @@ public abstract class CSelectionTestsAnyIndexer extends BaseSelectionTestsIndexe
|
|||
testF3(hfile, offset1);
|
||||
IEditorPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
|
||||
IEditorInput input = part.getEditorInput();
|
||||
assertEquals("source.c", ((FileEditorInput)input).getFile().getName());
|
||||
assertEquals("source.c", ((FileEditorInput) input).getFile().getName());
|
||||
}
|
||||
|
||||
// int myFunc();
|
||||
|
@ -547,5 +547,4 @@ public abstract class CSelectionTestsAnyIndexer extends BaseSelectionTestsIndexe
|
|||
assertTrue(name.isDefinition());
|
||||
assertEquals("myFunc", name.toString());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -326,12 +326,12 @@ public class CSelectionTestsNoIndexer extends BaseUITestCase {
|
|||
IASTNode decl = testF3(file, defOffset);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "MyInt"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 11);
|
||||
assertEquals(((ASTNode)decl).getLength(), 5);
|
||||
assertEquals(((IASTName)def).toString(), "MyInt"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)def).getOffset(), 330);
|
||||
assertEquals(((ASTNode)def).getLength(), 5);
|
||||
assertEquals("MyInt", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(11, ((ASTNode) decl).getOffset());
|
||||
assertEquals(5, ((ASTNode) decl).getLength());
|
||||
assertEquals("MyInt", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(330, ((ASTNode) def).getOffset());
|
||||
assertEquals(5, ((ASTNode) def).getLength());
|
||||
|
||||
offset= code.indexOf("MyConst") + 2;
|
||||
defOffset= code.indexOf("MyConst", offset) + 2;
|
||||
|
@ -339,12 +339,12 @@ public class CSelectionTestsNoIndexer extends BaseUITestCase {
|
|||
decl = testF3(file, defOffset);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "MyConst"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 69);
|
||||
assertEquals(((ASTNode)decl).getLength(), 7);
|
||||
assertEquals(((IASTName)def).toString(), "MyConst"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)def).getOffset(), 354);
|
||||
assertEquals(((ASTNode)def).getLength(), 7);
|
||||
assertEquals("MyConst", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(69, ((ASTNode) decl).getOffset());
|
||||
assertEquals(7, ((ASTNode) decl).getLength());
|
||||
assertEquals("MyConst", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(354, ((ASTNode) def).getOffset());
|
||||
assertEquals(7, ((ASTNode) def).getLength());
|
||||
|
||||
offset= code.indexOf("MyFunc") + 2;
|
||||
defOffset= code.indexOf("MyFunc", offset) + 2;
|
||||
|
@ -352,12 +352,12 @@ public class CSelectionTestsNoIndexer extends BaseUITestCase {
|
|||
decl = testF3(file, defOffset);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "MyFunc"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 115);
|
||||
assertEquals(((ASTNode)decl).getLength(), 6);
|
||||
assertEquals(((IASTName)def).toString(), "MyFunc"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)def).getOffset(), 373);
|
||||
assertEquals(((ASTNode)def).getLength(), 6);
|
||||
assertEquals("MyFunc", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(115, ((ASTNode) decl).getOffset());
|
||||
assertEquals(6, ((ASTNode) decl).getLength());
|
||||
assertEquals("MyFunc", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(373, ((ASTNode) def).getOffset());
|
||||
assertEquals(6, ((ASTNode) def).getLength());
|
||||
|
||||
offset= code.indexOf("MyStruct") + 2;
|
||||
defOffset= code.indexOf("MyStruct", offset) + 2;
|
||||
|
@ -365,12 +365,12 @@ public class CSelectionTestsNoIndexer extends BaseUITestCase {
|
|||
decl = testF3(file, defOffset);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "MyStruct"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 171);
|
||||
assertEquals(((ASTNode)decl).getLength(), 8);
|
||||
assertEquals(((IASTName)def).toString(), "MyStruct"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)def).getOffset(), 417);
|
||||
assertEquals(((ASTNode)def).getLength(), 8);
|
||||
assertEquals("MyStruct", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(417, ((ASTNode) decl).getOffset());
|
||||
assertEquals(8, ((ASTNode) decl).getLength());
|
||||
assertEquals("MyStruct", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(417, ((ASTNode) def).getOffset());
|
||||
assertEquals(8, ((ASTNode) def).getLength());
|
||||
}
|
||||
|
||||
// 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$
|
||||
IASTNode decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "a"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 512);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("a", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(512, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("c = 1; // defines c"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "c"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 546);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("c", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(546, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("f(int x) { return x+a; } // defines f and defines x"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "f"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 567);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("f", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(567, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("x) { return x+a; } // defines f and defines x"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 67);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(67, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("x+a; } // defines f and defines x"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 67);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(67, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("x+a; } // defines f and defines x"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 67);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(67, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("a; } // defines f and defines x"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "a"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 4);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("a", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(4, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("S { int a; int b; }; // defines S, S::a, and S::b"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "S"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 596);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("S", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(120, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("a; int b; }; // defines S, S::a, and S::b"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "a"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 128);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("a", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(128, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("b; }; // defines S, S::a, and S::b"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "b"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 135);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("b", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(135, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("X { // defines X"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "X"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 177);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("X", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(177, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("x; // defines nonstatic data member x"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 198);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(198, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("up, down }; // defines up and down"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "up"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 367);
|
||||
assertEquals(((ASTNode)decl).getLength(), 2);
|
||||
assertEquals("up", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(367, ((ASTNode) decl).getOffset());
|
||||
assertEquals(2, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("down }; // defines up and down"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "down"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 371);
|
||||
assertEquals(((ASTNode)decl).getLength(), 4);
|
||||
assertEquals("down", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(371, ((ASTNode) decl).getOffset());
|
||||
assertEquals(4, ((ASTNode) decl).getLength());
|
||||
|
||||
IASTNode def;
|
||||
offset = code.indexOf("X anX; // defines anX"); //$NON-NLS-1$
|
||||
def = testF3(file, offset);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertEquals(((IASTName)def).toString(), "X"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)def).getOffset(), 177);
|
||||
assertEquals(((ASTNode)def).getLength(), 1);
|
||||
assertEquals("X", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(177, ((ASTNode) def).getOffset());
|
||||
assertEquals(1, ((ASTNode) def).getLength());
|
||||
|
||||
offset = code.indexOf("anX; // defines anX"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "anX"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 481);
|
||||
assertEquals(((ASTNode)decl).getLength(), 3);
|
||||
assertEquals("anX", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(481, ((ASTNode) decl).getOffset());
|
||||
assertEquals(3, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("a; // declares a"); //$NON-NLS-1$
|
||||
def = testF3(file, offset);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertEquals(((IASTName)def).toString(), "a"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)def).getOffset(), 4);
|
||||
assertEquals(((ASTNode)def).getLength(), 1);
|
||||
assertEquals("a", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(4, ((ASTNode) def).getOffset());
|
||||
assertEquals(1, ((ASTNode) def).getLength());
|
||||
|
||||
offset = code.indexOf("c; // declares c"); //$NON-NLS-1$
|
||||
def = testF3(file, offset);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertEquals(((IASTName)def).toString(), "c"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)def).getOffset(), 37);
|
||||
assertEquals(((ASTNode)def).getLength(), 1);
|
||||
assertEquals("c", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(37, ((ASTNode) def).getOffset());
|
||||
assertEquals(1, ((ASTNode) def).getLength());
|
||||
|
||||
offset = code.indexOf("f(int y); // declar f"); //$NON-NLS-1$
|
||||
def = testF3(file, offset);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertEquals(((IASTName)def).toString(), "f"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)def).getOffset(), 61);
|
||||
assertEquals(((ASTNode)def).getLength(), 1);
|
||||
assertEquals("f", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(61, ((ASTNode) def).getOffset());
|
||||
assertEquals(1, ((ASTNode) def).getLength());
|
||||
|
||||
offset = code.indexOf("S; // declares S"); //$NON-NLS-1$
|
||||
def = testF3(file, offset);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertEquals(((IASTName)def).toString(), "S"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)def).getOffset(), 120);
|
||||
assertEquals(((ASTNode)def).getLength(), 1);
|
||||
assertEquals("S", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(120, ((ASTNode) def).getOffset());
|
||||
assertEquals(1, ((ASTNode) def).getLength());
|
||||
|
||||
offset = code.indexOf("Int; // declares Int"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "Int"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 625);
|
||||
assertEquals(((ASTNode)decl).getLength(), 3);
|
||||
assertEquals("Int", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(625, ((ASTNode) decl).getOffset());
|
||||
assertEquals(3, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("X anotherX; // declares anotherX"); //$NON-NLS-1$
|
||||
def = testF3(file, offset);
|
||||
assertTrue(def instanceof IASTName);
|
||||
assertEquals(((IASTName)def).toString(), "X"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)def).getOffset(), 177);
|
||||
assertEquals(((ASTNode)def).getLength(), 1);
|
||||
assertEquals("X", ((IASTName) def).toString()); //$NON-NLS-1$
|
||||
assertEquals(177, ((ASTNode) def).getOffset());
|
||||
assertEquals(1, ((ASTNode) def).getLength());
|
||||
|
||||
offset = code.indexOf("anotherX; // declares anotherX"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "anotherX"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 662);
|
||||
assertEquals(((ASTNode)decl).getLength(), 8);
|
||||
assertEquals("anotherX", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(662, ((ASTNode) decl).getOffset());
|
||||
assertEquals(8, ((ASTNode) decl).getLength());
|
||||
}
|
||||
|
||||
public void testNoDefinitions() throws Exception {
|
||||
|
@ -596,37 +596,37 @@ public class CSelectionTestsNoIndexer extends BaseUITestCase {
|
|||
int offset = code.indexOf("a1; // declares a"); //$NON-NLS-1$
|
||||
IASTNode decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "a1"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 11);
|
||||
assertEquals(((ASTNode)decl).getLength(), 2);
|
||||
assertEquals("a1", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(11, ((ASTNode) decl).getOffset());
|
||||
assertEquals(2, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("c1; // declares c"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "c1"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 46);
|
||||
assertEquals(((ASTNode)decl).getLength(), 2);
|
||||
assertEquals("c1", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(46, ((ASTNode) decl).getOffset());
|
||||
assertEquals(2, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("f1(int); // declares f"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "f1"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 68);
|
||||
assertEquals(((ASTNode)decl).getLength(), 2);
|
||||
assertEquals("f1", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(68, ((ASTNode) decl).getOffset());
|
||||
assertEquals(2, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("S1; // declares S"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "S1"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 98);
|
||||
assertEquals(((ASTNode)decl).getLength(), 2);
|
||||
assertEquals("S1", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(98, ((ASTNode) decl).getOffset());
|
||||
assertEquals(2, ((ASTNode) decl).getLength());
|
||||
|
||||
offset = code.indexOf("Int; // declares Int"); //$NON-NLS-1$
|
||||
decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "Int"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 128);
|
||||
assertEquals(((ASTNode)decl).getLength(), 3);
|
||||
assertEquals("Int", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(128, ((ASTNode) decl).getOffset());
|
||||
assertEquals(3, ((ASTNode) decl).getLength());
|
||||
}
|
||||
|
||||
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$
|
||||
IASTNode decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 4);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(4, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
}
|
||||
|
||||
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$
|
||||
IASTNode decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "x"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 4);
|
||||
assertEquals(((ASTNode)decl).getLength(), 1);
|
||||
assertEquals("x", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(4, ((ASTNode) decl).getOffset());
|
||||
assertEquals(1, ((ASTNode) decl).getLength());
|
||||
}
|
||||
|
||||
public void testBug78354() throws Exception {
|
||||
|
@ -684,9 +684,9 @@ public class CSelectionTestsNoIndexer extends BaseUITestCase {
|
|||
int offset = code.indexOf("TestTypeOne myFirstLink = 5;"); //$NON-NLS-1$
|
||||
IASTNode decl = testF3(file, offset);
|
||||
assertTrue(decl instanceof IASTName);
|
||||
assertEquals(((IASTName)decl).toString(), "TestTypeOne"); //$NON-NLS-1$
|
||||
assertEquals(((ASTNode)decl).getOffset(), 12);
|
||||
assertEquals(((ASTNode)decl).getLength(), 11);
|
||||
assertEquals("TestTypeOne", ((IASTName) decl).toString()); //$NON-NLS-1$
|
||||
assertEquals(12, ((ASTNode) decl).getOffset());
|
||||
assertEquals(11, ((ASTNode) decl).getLength());
|
||||
}
|
||||
|
||||
// int myFunc(var)
|
||||
|
|
|
@ -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.IParameter;
|
||||
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.ICPPMethod;
|
||||
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.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.ext.CElementHandleFactory;
|
||||
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 static boolean sIsJUnitTest = false;
|
||||
|
||||
private static final int KIND_OTHER = 0;
|
||||
private static final int KIND_USING_DECL = 1;
|
||||
private static final int KIND_DEFINITION = 2;
|
||||
|
||||
private enum NameKind { REFERENCE, DECLARATION, USING_DECL, DEFINITION }
|
||||
|
||||
private class WrapperJob extends Job {
|
||||
WrapperJob() {
|
||||
|
@ -158,19 +158,19 @@ public class OpenDeclarationsAction extends SelectionParseAction implements ASTR
|
|||
|
||||
final IASTNodeSelector nodeSelector = ast.getNodeSelector(null);
|
||||
|
||||
IASTName searchName= nodeSelector.findEnclosingName(selectionStart, selectionLength);
|
||||
if (searchName == null) {
|
||||
IASTName sourceName= nodeSelector.findEnclosingName(selectionStart, selectionLength);
|
||||
if (sourceName == null) {
|
||||
IASTName implicit = nodeSelector.findEnclosingImplicitName(selectionStart, selectionLength);
|
||||
if (implicit != null) {
|
||||
IASTImplicitNameOwner owner = (IASTImplicitNameOwner) implicit.getParent();
|
||||
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) {
|
||||
List<IName> allNames = new ArrayList<IName>();
|
||||
for (IASTImplicitName name : implicits) {
|
||||
if (((ASTNode) name).getOffset() == ((ASTNode) implicit).getOffset()) {
|
||||
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));
|
||||
}
|
||||
}
|
||||
|
@ -180,32 +180,31 @@ public class OpenDeclarationsAction extends SelectionParseAction implements ASTR
|
|||
}
|
||||
} else {
|
||||
boolean found= false;
|
||||
final IASTNode parent = searchName.getParent();
|
||||
final IASTNode parent = sourceName.getParent();
|
||||
if (parent instanceof IASTPreprocessorIncludeStatement) {
|
||||
openInclude(((IASTPreprocessorIncludeStatement) parent));
|
||||
return Status.OK_STATUS;
|
||||
}
|
||||
IBinding binding = searchName.resolveBinding();
|
||||
int isKind= KIND_OTHER;
|
||||
if (searchName.isDefinition()) {
|
||||
if (binding instanceof ICPPUsingDeclaration) {
|
||||
isKind= KIND_USING_DECL;
|
||||
} else {
|
||||
isKind= KIND_DEFINITION;
|
||||
}
|
||||
}
|
||||
IBinding binding = sourceName.resolveBinding();
|
||||
NameKind kind = getNameKind(sourceName);
|
||||
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.
|
||||
for (int i = 0; i < declNames.length; i++) {
|
||||
if (isSameName(declNames[i], searchName)) {
|
||||
if (isSameName(declNames[i], sourceName)) {
|
||||
declNames[i] = null;
|
||||
} else if (binding instanceof IParameter) {
|
||||
if (!isInSameFunction(searchName, declNames[i])) {
|
||||
if (!isInSameFunction(sourceName, declNames[i])) {
|
||||
declNames[i] = null;
|
||||
}
|
||||
} else if (binding instanceof ICPPTemplateParameter) {
|
||||
if (!isInSameTemplate(searchName, declNames[i])) {
|
||||
if (!isInSameTemplate(sourceName, declNames[i])) {
|
||||
declNames[i] = null;
|
||||
}
|
||||
}
|
||||
|
@ -220,59 +219,85 @@ public class OpenDeclarationsAction extends SelectionParseAction implements ASTR
|
|||
found = navigateOneLocation(declNames);
|
||||
}
|
||||
}
|
||||
if (!found && !navigationFallBack(ast, searchName, isKind)) {
|
||||
reportSymbolLookupFailure(new String(searchName.toCharArray()));
|
||||
if (!found && !navigationFallBack(ast, sourceName, kind)) {
|
||||
reportSymbolLookupFailure(new String(sourceName.toCharArray()));
|
||||
}
|
||||
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);
|
||||
if (node instanceof IASTPreprocessorIncludeStatement) {
|
||||
openInclude((IASTPreprocessorIncludeStatement) node);
|
||||
return Status.OK_STATUS;
|
||||
}
|
||||
if (!navigationFallBack(ast, null, KIND_OTHER)) {
|
||||
if (!navigationFallBack(ast, null, NameKind.REFERENCE)) {
|
||||
reportSelectionMatchFailure();
|
||||
}
|
||||
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 decl2 = name2 instanceof IASTName ? getEnclosingDeclaration((IASTName) name2) : 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)) {
|
||||
node= node.getParent();
|
||||
}
|
||||
return (IASTDeclaration) node;
|
||||
}
|
||||
|
||||
private boolean isInSameTemplate(IASTName name1, IName name2) {
|
||||
private static boolean isInSameTemplate(IASTName name1, IName name2) {
|
||||
IASTDeclaration decl1 = getEnclosingTemplateDeclaration(name1);
|
||||
IASTDeclaration decl2 = name2 instanceof IASTName ?
|
||||
getEnclosingTemplateDeclaration((IASTName) name2) : 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)) {
|
||||
node= node.getParent();
|
||||
}
|
||||
return (IASTDeclaration) node;
|
||||
}
|
||||
|
||||
private IName[] findDeclNames(IASTTranslationUnit ast, int isKind, IBinding binding) throws CoreException {
|
||||
IName[] declNames = findNames(fIndex, ast, isKind, binding);
|
||||
private IName[] findDeclNames(IASTTranslationUnit ast, NameKind kind, IBinding binding) throws CoreException {
|
||||
IName[] declNames = findNames(fIndex, ast, kind, binding);
|
||||
if (declNames.length == 0) {
|
||||
if (binding instanceof ICPPSpecialization) {
|
||||
// bug 207320, handle template instances
|
||||
IBinding specialized= ((ICPPSpecialization) binding).getSpecializedBinding();
|
||||
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) {
|
||||
// bug 86829, handle implicit methods.
|
||||
|
@ -281,7 +306,7 @@ public class OpenDeclarationsAction extends SelectionParseAction implements ASTR
|
|||
try {
|
||||
IBinding clsBinding= method.getClassOwner();
|
||||
if (clsBinding != null && !(clsBinding instanceof IProblemBinding)) {
|
||||
declNames= findNames(fIndex, ast, KIND_OTHER, clsBinding);
|
||||
declNames= findNames(fIndex, ast, NameKind.REFERENCE, clsBinding);
|
||||
}
|
||||
} catch (DOMException e) {
|
||||
// don't log problem bindings.
|
||||
|
@ -292,7 +317,7 @@ public class OpenDeclarationsAction extends SelectionParseAction implements ASTR
|
|||
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
|
||||
if (fSelectedText != null && fSelectedText.length() > 0) {
|
||||
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 IIndexBinding[] idxBindings = fIndex.findBindings(name, false, filter, fMonitor);
|
||||
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);
|
||||
for (IIndexMacro macro : macros) {
|
||||
ICElement elem= IndexUI.getCElementForMacro(project, fIndex, macro);
|
||||
|
@ -346,11 +371,11 @@ public class OpenDeclarationsAction extends SelectionParseAction implements ASTR
|
|||
if (!Arrays.equals(qualifiedName, sourceQualifiedName)) {
|
||||
continue;
|
||||
}
|
||||
IName[] names = findNames(fIndex, ast, isKind, binding);
|
||||
IName[] names = findNames(fIndex, ast, kind, binding);
|
||||
// Exclude the current location.
|
||||
for (int i = 0; i < names.length; i++) {
|
||||
if (sourceName != null && isSameName(names[i], sourceName)) {
|
||||
names[i] = null;
|
||||
if (getNameKind(names[i]) == kind) {
|
||||
names[i] = null; // Don' navigate to a name of the same kind.
|
||||
}
|
||||
}
|
||||
names = (IName[]) ArrayUtil.removeNulls(IName.class, names);
|
||||
|
@ -505,17 +530,17 @@ public class OpenDeclarationsAction extends SelectionParseAction implements ASTR
|
|||
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;
|
||||
if (isKind == KIND_DEFINITION) {
|
||||
if (kind == NameKind.DEFINITION) {
|
||||
declNames= findDeclarations(index, ast, binding);
|
||||
} else {
|
||||
declNames= findDefinitions(index, ast, isKind, binding);
|
||||
declNames= findDefinitions(index, ast, kind, binding);
|
||||
}
|
||||
|
||||
if (declNames.length == 0) {
|
||||
if (isKind == KIND_DEFINITION) {
|
||||
declNames= findDefinitions(index, ast, isKind, binding);
|
||||
if (kind == NameKind.DEFINITION) {
|
||||
declNames= findDefinitions(index, ast, kind, binding);
|
||||
} else {
|
||||
declNames= findDeclarations(index, ast, binding);
|
||||
}
|
||||
|
@ -523,7 +548,7 @@ public class OpenDeclarationsAction extends SelectionParseAction implements ASTR
|
|||
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>();
|
||||
declNames.addAll(Arrays.asList(ast.getDefinitionsInAST(binding)));
|
||||
for (Iterator<IASTName> i = declNames.iterator(); i.hasNext();) {
|
||||
|
|
Loading…
Add table
Reference in a new issue