Remove wrong check through template args from containsXInterfaceSubclass
...that was probably only there as a workaround for cases (equally wrongly) covered by the check for !hasAnyDependentBase in isDerivedFrom. And the latter appears to no longer be necessary, probably because the cases it happened to cover intentionally are now covered correctly through some other logic that got added to this plugin meanwhile. Change-Id: Ife6370b4f966198fc731813afe62d765450382e6
This commit is contained in:
parent
e3e66f7b07
commit
6a1bebcc89
@ -83,10 +83,7 @@ bool isDerivedFrom(const CXXRecordDecl *decl, const char *pString) {
|
||||
if (!decl->hasDefinition()) {
|
||||
return false;
|
||||
}
|
||||
if (// not sure what hasAnyDependentBases() does,
|
||||
// but it avoids classes we don't want, e.g. WeakAggComponentImplHelper1
|
||||
!decl->hasAnyDependentBases() &&
|
||||
!compat::forallBases(
|
||||
if (!compat::forallBases(
|
||||
*decl,
|
||||
#if CLANG_VERSION < 30800
|
||||
BaseCheckNotSubclass,
|
||||
@ -223,14 +220,6 @@ bool containsXInterfaceSubclass(const Type* pType0) {
|
||||
{
|
||||
return false;
|
||||
}
|
||||
for(unsigned i=0; i<pTemplate->getTemplateArgs().size(); ++i) {
|
||||
const TemplateArgument& rArg = pTemplate->getTemplateArgs()[i];
|
||||
if (rArg.getKind() == TemplateArgument::ArgKind::Type &&
|
||||
containsXInterfaceSubclass(rArg.getAsType()))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (pType->isPointerType()) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user