1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-09 10:46:02 +02:00

Fixed Bug 98806 - selectNodeForLocation fails after typename

This commit is contained in:
John Camelon 2005-06-07 20:20:46 +00:00
parent f20ffd5b51
commit 7d1631e8ef
3 changed files with 14 additions and 5 deletions

View file

@ -1648,4 +1648,11 @@ public class AST2SelectionParseTest extends AST2SelectionParseBaseTest {
assertNotNull(node); assertNotNull(node);
} }
public void testBug98806() throws Exception {
String code = "template <class T> class A { typedef typename T::B _B;};";
IASTNode node = parse( code, ParserLanguage.CPP, code.indexOf( "T::B"), "T::B".length() );
assertNotNull( node );
assertTrue( node instanceof IASTName );
}
} }

View file

@ -2016,6 +2016,7 @@ public class GNUCSourceParser extends AbstractGNUSourceCodeParser {
.setPropertyInParent(IASTDeclarator.DECLARATOR_NAME); .setPropertyInParent(IASTDeclarator.DECLARATOR_NAME);
} }
if( parmNames != null )
for (int i = 0; i < parmNames.length; ++i) { for (int i = 0; i < parmNames.length; ++i) {
parmNames[i].setParent(functionDecltor); parmNames[i].setParent(functionDecltor);
parmNames[i] parmNames[i]

View file

@ -3324,6 +3324,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser {
isTypename = true; isTypename = true;
last = consume(IToken.t_typename); last = consume(IToken.t_typename);
duple = name(); duple = name();
last = duple.getLastToken();
flags.setEncounteredTypename(true); flags.setEncounteredTypename(true);
break; break;
case IToken.tCOLONCOLON: case IToken.tCOLONCOLON: