From ee3817460e7d8f19e4cfd5dba3c3a59388b64d94 Mon Sep 17 00:00:00 2001 From: Mike Kucera Date: Fri, 13 Mar 2009 15:36:16 +0000 Subject: [PATCH] bug 268375, open declaration for implicit names --- .../CPPSelectionTestsAnyIndexer.java | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/selection/CPPSelectionTestsAnyIndexer.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/selection/CPPSelectionTestsAnyIndexer.java index 254125a54e4..6221367274b 100644 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/selection/CPPSelectionTestsAnyIndexer.java +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/selection/CPPSelectionTestsAnyIndexer.java @@ -1104,4 +1104,45 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde decl= testF3(file, offset2); assertNode("ADD", offset1, decl); } + + // struct X { + // int operator +(X); + // int operator [](int); + // ~X(); + // }; + // + // int test(X x) { + // x + x; + // x[6]; + // X* xx = new X(); + // delete xx; + // } + public void testNavigationToImplicitNames() throws Exception { + StringBuffer[] buffers= getContents(1); + String code= buffers[0].toString(); + IFile file = importFile("in.cpp", code); + waitUntilFileIsIndexed(index, file, MAX_WAIT_TIME); + + int offset1 = code.indexOf("operator +"); + int offset2 = code.indexOf("+ x;"); + IASTNode decl = testF3(file, offset2); + assertNode("operator +", offset1, decl); + decl = testF3(file, offset2+1); + assertNode("operator +", offset1, decl); + + offset1 = code.indexOf("operator []"); + offset2 = code.indexOf("[6];"); + decl = testF3(file, offset2+1); + assertNode("operator []", offset1, decl); + offset2 = code.indexOf("];"); + decl = testF3(file, offset2); + assertNode("operator []", offset1, decl); + decl = testF3(file, offset2+1); + assertNode("operator []", offset1, decl); + + offset1 = code.indexOf("~X()"); + offset2 = code.indexOf("delete"); + decl = testF3(file, offset2); + assertNode("~X", offset1, decl); + } }