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:
parent
6334301ac3
commit
c3aab566fd
3 changed files with 11 additions and 5 deletions
|
@ -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;
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Add table
Reference in a new issue