diff options
author | Matthew Woehlke <matthew.woehlke@kitware.com> | 2013-10-02 16:40:47 -0400 |
---|---|---|
committer | John Cummings <jcummings2@users.sf.net> | 2013-10-09 15:04:47 +0200 |
commit | a4bfd1948ba4e8f20d7bcd116fb756fc3559e078 (patch) | |
tree | 475b86934e7f4eb826a3d4dc15fa46e817ccb3e4 | |
parent | cdd1bdc5f0f56cbb2a0a1172d4cd947417fed163 (diff) |
Don't warn when inheriting from container
Change AbstractMetaBuilder::setupInheritance to not warn about classes
that inherit from known container types, even if the container type does
not have a corresponding wrapper class (which in many or most cases it
won't). Remove now-unneeded suppression for the same in 'sample'.
Change-Id: I0a45636791eba36cf070ea082eb6ead6cb5947ef
Reviewed-by: John Cummings <jcummings2@users.sf.net>
-rw-r--r-- | ApiExtractor/abstractmetabuilder.cpp | 15 | ||||
-rw-r--r-- | tests/samplebinding/typesystem_sample.xml | 2 |
2 files changed, 10 insertions, 7 deletions
diff --git a/ApiExtractor/abstractmetabuilder.cpp b/ApiExtractor/abstractmetabuilder.cpp index d72c27f74..a5c31bf38 100644 --- a/ApiExtractor/abstractmetabuilder.cpp +++ b/ApiExtractor/abstractmetabuilder.cpp @@ -1634,12 +1634,17 @@ bool AbstractMetaBuilder::setupInheritance(AbstractMetaClass *metaClass) return true; } - // Container types are not necessarily wrapped as 'real' classes, but - // there may still be classes derived from them. In such case, we still - // need to set the base container type in order to generate correct - // code for type conversion checking. - if (baseContainerType) + if (baseContainerType) { + // Container types are not necessarily wrapped as 'real' classes, + // but there may still be classes derived from them. In such case, + // we still need to set the base container type in order to + // generate correct code for type conversion checking. + // + // Additionally, we consider this case as successfully setting up + // inheritance. metaClass->typeEntry()->setBaseContainerType(baseContainerType); + return true; + } ReportHandler::warning(QString("template baseclass '%1' of '%2' is not known") .arg(baseClasses.first()) diff --git a/tests/samplebinding/typesystem_sample.xml b/tests/samplebinding/typesystem_sample.xml index 824697f23..233a756ce 100644 --- a/tests/samplebinding/typesystem_sample.xml +++ b/tests/samplebinding/typesystem_sample.xml @@ -2406,8 +2406,6 @@ <suppress-warning text="hiding of function 'takeChild' in class 'ObjectView'" /> <suppress-warning text="visibility of function 'publicMethod' modified in class 'MDerived3'" /> <suppress-warning text="skipping function 'InjectCode::toStr', unmatched parameter type 'T const&'" /> - <suppress-warning text="template baseclass 'std::list<T>' of 'QList' is not known" /> - <suppress-warning text="template baseclass 'std::list<Str>' of 'StrList' is not known" /> <!-- Do not fix this warning, the generator should be able to handle this situation for Object Types. --> <suppress-warning text="Argument in position 1 of added function 'SampleNamespace::passReferenceToObjectType(ObjectType * arg__1)', has a type that is not a reference, while the argument in the corresponding position in C++ function 'SampleNamespace::passReferenceToObjectType(const ObjectType & obj, int multiplier)' is a reference." /> |