warnings suppressed for deeply nested classes

This commit is contained in:
Vladimir Kalinin 2014-02-07 07:39:07 +04:00
commit e9ecac9298
2 changed files with 11 additions and 10 deletions

View file

@ -19,7 +19,6 @@
%warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) Outer::InnerMultipleNamedTypedef; %warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) Outer::InnerMultipleNamedTypedef;
%warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) Outer::InnerSameName; %warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) Outer::InnerSameName;
%warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) Outer2::IgnoreMe; %warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) Outer2::IgnoreMe;
%warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) Outer::InnerSameName::InnerSameName2;
%inline %{ %inline %{
struct Outer { struct Outer {

View file

@ -1119,16 +1119,18 @@ static Node *nested_forward_declaration(const char *storage, const char *kind, S
} }
} }
if (nn && Equal(nodeType(nn), "classforward")) { if (!GetFlag(currentOuterClass, "nested")) {
Node *n = nn; if (nn && Equal(nodeType(nn), "classforward")) {
SWIG_WARN_NODE_BEGIN(n); Node *n = nn;
Swig_warning(WARN_PARSE_NAMED_NESTED_CLASS, cparse_file, cparse_line,"Nested %s not currently supported (%s ignored)\n", kind, sname ? sname : name); SWIG_WARN_NODE_BEGIN(n);
SWIG_WARN_NODE_END(n); Swig_warning(WARN_PARSE_NAMED_NESTED_CLASS, cparse_file, cparse_line,"Nested %s not currently supported (%s ignored)\n", kind, sname ? sname : name);
warned = 1; SWIG_WARN_NODE_END(n);
} warned = 1;
}
if (!warned) { if (!warned) {
Swig_warning(WARN_PARSE_UNNAMED_NESTED_CLASS, cparse_file, cparse_line, "Nested %s not currently supported (ignored).\n", kind); Swig_warning(WARN_PARSE_UNNAMED_NESTED_CLASS, cparse_file, cparse_line, "Nested %s not currently supported (ignored).\n", kind);
}
} }
return nn; return nn;