1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-07 17:56:01 +02:00

Improved resolution of qualified names during indexing.

This commit is contained in:
Doug Schaefer 2006-05-27 04:59:19 +00:00
parent 6334301ac3
commit c3aab566fd
3 changed files with 11 additions and 5 deletions

View file

@ -170,7 +170,7 @@ public abstract class PDOMLinkage extends PDOMNamedNode {
public abstract PDOMBinding adaptBinding(IBinding binding) throws CoreException;
public abstract PDOMBinding resolveBinding(IASTName name) throws CoreException;
public abstract IBinding resolveBinding(IASTName name) throws CoreException;
public abstract void findBindings(String pattern, List bindings) throws CoreException;

View file

@ -206,7 +206,7 @@ public class PDOMCLinkage extends PDOMLinkage {
return super.getNode(record);
}
public PDOMBinding resolveBinding(IASTName name) throws CoreException {
public IBinding resolveBinding(IASTName name) throws CoreException {
IASTNode parent = name.getParent();
if (parent instanceof IASTIdExpression) {
// reference

View file

@ -231,10 +231,16 @@ public class PDOMCPPLinkage extends PDOMLinkage {
return null;
}
public PDOMBinding resolveBinding(IASTName name) throws CoreException {
public IBinding resolveBinding(IASTName name) throws CoreException {
if (name instanceof ICPPASTQualifiedName) {
IASTName lastName = ((ICPPASTQualifiedName)name).getLastName();
return lastName != null ? resolveBinding(lastName) : null;
IASTName[] names = ((ICPPASTQualifiedName)name).getNames();
if (names.length == 1)
return resolveBinding(names[0]);
IASTName lastName = names[names.length - 1];
PDOMBinding nsBinding = adaptBinding(names[names.length - 2].resolveBinding());
if (nsBinding instanceof IScope) {
return ((IScope)nsBinding).getBinding(lastName, true);
}
}
IASTNode parent = name.getParent();
if (parent instanceof ICPPASTQualifiedName) {