1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-09 02:36:01 +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);
}
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,11 +2016,12 @@ public class GNUCSourceParser extends AbstractGNUSourceCodeParser {
.setPropertyInParent(IASTDeclarator.DECLARATOR_NAME);
}
for (int i = 0; i < parmNames.length; ++i) {
parmNames[i].setParent(functionDecltor);
parmNames[i]
.setPropertyInParent(ICASTKnRFunctionDeclarator.PARAMETER_NAME);
}
if( parmNames != null )
for (int i = 0; i < parmNames.length; ++i) {
parmNames[i].setParent(functionDecltor);
parmNames[i]
.setPropertyInParent(ICASTKnRFunctionDeclarator.PARAMETER_NAME);
}
d = functionDecltor;
} else if (isFunction) {

View file

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