Don't issue unnecessary base class ignored message

Don't warn about base class being ignored when the derived class is
itself ignored.

Closes #669
This commit is contained in:
William S Fulton 2016-05-02 22:50:09 +01:00
commit 3efdbc8f2e
4 changed files with 28 additions and 1 deletions

View file

@ -5,6 +5,10 @@ See the RELEASENOTES file for a summary of changes in each release.
Version 3.0.9 (in progress)
===========================
2016-05-02: wsfulton
Fix #669. Don't issue warning about ignoring base classes when the derived class is
itself ignored.
2016-04-18: ianlancetaylor
[Go] Fix use of goout typemap when calling base method by
forcing the "type" attribute to the value we need.

View file

@ -0,0 +1,19 @@
%module xxx
// Only non-ignored classes should warn about Ignored base classes
%ignore ActualClass;
%ignore ActualClassNoTemplates;
%{
struct BaseClassNoTemplates {};
%}
%inline %{
template<typename T>
class TemplateClass {};
class ActualClass : public TemplateClass<int> {};
class AktuelKlass : public TemplateClass<int> {};
class ActualClassNoTemplates : public BaseClassNoTemplates {};
class AktuelKlassNoTemplates : public BaseClassNoTemplates {};
%}

View file

@ -0,0 +1,3 @@
cpp_inherit_ignored.i:15: Warning 401: Nothing known about base class 'TemplateClass< int >'. Ignored.
cpp_inherit_ignored.i:15: Warning 401: Maybe you forgot to instantiate 'TemplateClass< int >' using %template.
cpp_inherit_ignored.i:18: Warning 401: Nothing known about base class 'BaseClassNoTemplates'. Ignored.

View file

@ -503,7 +503,8 @@ class TypePass:private Dispatcher {
/* Inherit type definitions into the class */
if (name && !(GetFlag(n, "nested") && !checkAttribute(n, "access", "public") &&
(GetFlag(n, "feature:flatnested") || Language::instance()->nestedClassesSupport() == Language::NCS_None))) {
cplus_inherit_types(n, 0, nname ? nname : (fname ? fname : name));
if (!GetFlag(n, "feature:ignore"))
cplus_inherit_types(n, 0, nname ? nname : (fname ? fname : name));
}
inclass = n;