1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-14 11:45:38 +02:00

Bug 412766 - Allow indexing to continue after encountering an invalid

class member.
This commit is contained in:
Sergey Prigogin 2013-09-16 14:13:59 -07:00
parent 4839437b2d
commit 6aa4c6f4d7
2 changed files with 17 additions and 3 deletions

View file

@ -1334,4 +1334,13 @@ public class IndexCPPBindingResolutionBugs extends IndexBindingResolutionTestBas
assertTrue(name instanceof IASTImplicitName);
assertEquals("base", name.resolveBinding().getOwner().getName());
}
// class A {
// class B;
// };
// class D : public A {};
// class D::B {};
public void _testInvalidOwner_412766() throws Exception {
checkBindings();
}
}

View file

@ -541,9 +541,14 @@ class PDOMCPPLinkage extends PDOMLinkage implements IIndexCPPBindingConstants {
if (parent instanceof IPDOMCPPClassType) {
if (originalBinding instanceof IEnumerator)
originalBinding = originalBinding.getOwner();
int visibility = getVisibility(originalBinding);
if (visibility >= 0) {
((IPDOMCPPClassType) parent).addMember(binding, visibility);
try {
int visibility = getVisibility(originalBinding);
if (visibility >= 0) {
((IPDOMCPPClassType) parent).addMember(binding, visibility);
return;
}
} catch (IllegalArgumentException e) {
CCorePlugin.log(e);
return;
}
}