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 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;
|
public abstract void findBindings(String pattern, List bindings) throws CoreException;
|
||||||
|
|
||||||
|
|
|
@ -206,7 +206,7 @@ public class PDOMCLinkage extends PDOMLinkage {
|
||||||
return super.getNode(record);
|
return super.getNode(record);
|
||||||
}
|
}
|
||||||
|
|
||||||
public PDOMBinding resolveBinding(IASTName name) throws CoreException {
|
public IBinding resolveBinding(IASTName name) throws CoreException {
|
||||||
IASTNode parent = name.getParent();
|
IASTNode parent = name.getParent();
|
||||||
if (parent instanceof IASTIdExpression) {
|
if (parent instanceof IASTIdExpression) {
|
||||||
// reference
|
// reference
|
||||||
|
|
|
@ -231,10 +231,16 @@ public class PDOMCPPLinkage extends PDOMLinkage {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PDOMBinding resolveBinding(IASTName name) throws CoreException {
|
public IBinding resolveBinding(IASTName name) throws CoreException {
|
||||||
if (name instanceof ICPPASTQualifiedName) {
|
if (name instanceof ICPPASTQualifiedName) {
|
||||||
IASTName lastName = ((ICPPASTQualifiedName)name).getLastName();
|
IASTName[] names = ((ICPPASTQualifiedName)name).getNames();
|
||||||
return lastName != null ? resolveBinding(lastName) : null;
|
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();
|
IASTNode parent = name.getParent();
|
||||||
if (parent instanceof ICPPASTQualifiedName) {
|
if (parent instanceof ICPPASTQualifiedName) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue