mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-15 12:15:47 +02:00
Bug 412766 - Allow indexing to continue after encountering an invalid
class member.
This commit is contained in:
parent
4839437b2d
commit
6aa4c6f4d7
2 changed files with 17 additions and 3 deletions
|
@ -1334,4 +1334,13 @@ public class IndexCPPBindingResolutionBugs extends IndexBindingResolutionTestBas
|
||||||
assertTrue(name instanceof IASTImplicitName);
|
assertTrue(name instanceof IASTImplicitName);
|
||||||
assertEquals("base", name.resolveBinding().getOwner().getName());
|
assertEquals("base", name.resolveBinding().getOwner().getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// class A {
|
||||||
|
// class B;
|
||||||
|
// };
|
||||||
|
// class D : public A {};
|
||||||
|
// class D::B {};
|
||||||
|
public void _testInvalidOwner_412766() throws Exception {
|
||||||
|
checkBindings();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -541,9 +541,14 @@ class PDOMCPPLinkage extends PDOMLinkage implements IIndexCPPBindingConstants {
|
||||||
if (parent instanceof IPDOMCPPClassType) {
|
if (parent instanceof IPDOMCPPClassType) {
|
||||||
if (originalBinding instanceof IEnumerator)
|
if (originalBinding instanceof IEnumerator)
|
||||||
originalBinding = originalBinding.getOwner();
|
originalBinding = originalBinding.getOwner();
|
||||||
int visibility = getVisibility(originalBinding);
|
try {
|
||||||
if (visibility >= 0) {
|
int visibility = getVisibility(originalBinding);
|
||||||
((IPDOMCPPClassType) parent).addMember(binding, visibility);
|
if (visibility >= 0) {
|
||||||
|
((IPDOMCPPClassType) parent).addMember(binding, visibility);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
CCorePlugin.log(e);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue