1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-26 10:25:32 +02:00

Fixes a bug in IndexerASTVisitor, introduced by my last checkin :-(.

This commit is contained in:
Markus Schorn 2007-01-23 17:24:54 +00:00
parent 45ba2b1b34
commit 2bba2adf86

View file

@ -52,11 +52,16 @@ abstract public class IndexerASTVisitor extends ASTVisitor {
if (fDefinitionName != null) { if (fDefinitionName != null) {
fStack.add(new Object[] {fDefinitionName, fDefinitionNode}); fStack.add(new Object[] {fDefinitionName, fDefinitionNode});
} }
name = getLastInQualified(name);
fDefinitionName= name;
fDefinitionNode= node;
}
private IASTName getLastInQualified(IASTName name) {
if (name instanceof ICPPASTQualifiedName) { if (name instanceof ICPPASTQualifiedName) {
name= ((ICPPASTQualifiedName) name).getLastName(); name= ((ICPPASTQualifiedName) name).getLastName();
} }
fDefinitionName= name; return name;
fDefinitionNode= node;
} }
private void pop(IASTNode node) { private void pop(IASTNode node) {
@ -77,7 +82,7 @@ abstract public class IndexerASTVisitor extends ASTVisitor {
public int visit(IASTDeclaration decl) { public int visit(IASTDeclaration decl) {
if (decl instanceof IASTFunctionDefinition) { if (decl instanceof IASTFunctionDefinition) {
IASTFunctionDefinition fdef= (IASTFunctionDefinition) decl; IASTFunctionDefinition fdef= (IASTFunctionDefinition) decl;
IASTName name = fdef.getDeclarator().getName(); IASTName name = getLastInQualified(fdef.getDeclarator().getName());
visit(name, fDefinitionName); visit(name, fDefinitionName);
push(name, decl); push(name, decl);
} }
@ -89,7 +94,7 @@ abstract public class IndexerASTVisitor extends ASTVisitor {
IASTDeclarator declarator = declarators[i]; IASTDeclarator declarator = declarators[i];
if (declarator.getPointerOperators().length == 0 && if (declarator.getPointerOperators().length == 0 &&
declarator.getNestedDeclarator() == null) { declarator.getNestedDeclarator() == null) {
IASTName name= declarator.getName(); IASTName name= getLastInQualified(declarator.getName());
visit(name, fDefinitionName); visit(name, fDefinitionName);
push(name, decl); push(name, decl);
} }
@ -108,7 +113,7 @@ abstract public class IndexerASTVisitor extends ASTVisitor {
public int visit(IASTDeclSpecifier declspec) { public int visit(IASTDeclSpecifier declspec) {
if (declspec instanceof ICPPASTCompositeTypeSpecifier) { if (declspec instanceof ICPPASTCompositeTypeSpecifier) {
ICPPASTCompositeTypeSpecifier cts= (ICPPASTCompositeTypeSpecifier) declspec; ICPPASTCompositeTypeSpecifier cts= (ICPPASTCompositeTypeSpecifier) declspec;
IASTName name = cts.getName(); IASTName name = getLastInQualified(cts.getName());
visit(name, fDefinitionName); visit(name, fDefinitionName);
push(name, declspec); push(name, declspec);
} }