Merge branch 'wkalinin-nested-ignore-fix'
* wkalinin-nested-ignore-fix: renamed test module, in accordance with other tests function body fixed added foo() definition to satisfy some test linking fails func() renamed to foo() for 'go' fixed test-suite/nested_ignore.i test for #662 fix for nested ignored types Closes #662
This commit is contained in:
commit
b24e970a28
4 changed files with 39 additions and 6 deletions
|
|
@ -308,6 +308,7 @@ CPP_TEST_CASES += \
|
||||||
nested_class \
|
nested_class \
|
||||||
nested_directors \
|
nested_directors \
|
||||||
nested_comment \
|
nested_comment \
|
||||||
|
nested_ignore \
|
||||||
nested_scope \
|
nested_scope \
|
||||||
nested_template_base \
|
nested_template_base \
|
||||||
nested_workaround \
|
nested_workaround \
|
||||||
|
|
|
||||||
24
Examples/test-suite/nested_ignore.i
Normal file
24
Examples/test-suite/nested_ignore.i
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
%module nested_ignore
|
||||||
|
%warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) B::C::D;
|
||||||
|
|
||||||
|
%rename($ignore) B::C;
|
||||||
|
|
||||||
|
%inline %{
|
||||||
|
namespace B {
|
||||||
|
class C {
|
||||||
|
public:
|
||||||
|
struct D {
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
class E {
|
||||||
|
public:
|
||||||
|
typedef C::D D;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct F
|
||||||
|
{
|
||||||
|
const E::D foo(){ return E::D(); }
|
||||||
|
};
|
||||||
|
}
|
||||||
|
%}
|
||||||
|
|
@ -188,8 +188,12 @@ public:
|
||||||
String *symname = Copy(Getattr(n, "sym:name"));
|
String *symname = Copy(Getattr(n, "sym:name"));
|
||||||
if (symname && !GetFlag(n, "feature:flatnested")) {
|
if (symname && !GetFlag(n, "feature:flatnested")) {
|
||||||
for (Node *outer_class = Getattr(n, "nested:outer"); outer_class; outer_class = Getattr(outer_class, "nested:outer")) {
|
for (Node *outer_class = Getattr(n, "nested:outer"); outer_class; outer_class = Getattr(outer_class, "nested:outer")) {
|
||||||
|
if (String* name = Getattr(outer_class, "sym:name")) {
|
||||||
Push(symname, ".");
|
Push(symname, ".");
|
||||||
Push(symname, Getattr(outer_class, "sym:name"));
|
Push(symname, name);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (nspace) {
|
if (nspace) {
|
||||||
|
|
|
||||||
|
|
@ -211,8 +211,12 @@ public:
|
||||||
String *symname = Copy(Getattr(n, "sym:name"));
|
String *symname = Copy(Getattr(n, "sym:name"));
|
||||||
if (symname && !GetFlag(n, "feature:flatnested")) {
|
if (symname && !GetFlag(n, "feature:flatnested")) {
|
||||||
for (Node *outer_class = Getattr(n, "nested:outer"); outer_class; outer_class = Getattr(outer_class, "nested:outer")) {
|
for (Node *outer_class = Getattr(n, "nested:outer"); outer_class; outer_class = Getattr(outer_class, "nested:outer")) {
|
||||||
|
if (String* name = Getattr(outer_class, "sym:name")) {
|
||||||
Push(symname, jnidescriptor ? "$" : ".");
|
Push(symname, jnidescriptor ? "$" : ".");
|
||||||
Push(symname, Getattr(outer_class, "sym:name"));
|
Push(symname, name);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (nspace) {
|
if (nspace) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue