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_directors \
|
||||
nested_comment \
|
||||
nested_ignore \
|
||||
nested_scope \
|
||||
nested_template_base \
|
||||
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"));
|
||||
if (symname && !GetFlag(n, "feature:flatnested")) {
|
||||
for (Node *outer_class = Getattr(n, "nested:outer"); outer_class; outer_class = Getattr(outer_class, "nested:outer")) {
|
||||
Push(symname, ".");
|
||||
Push(symname, Getattr(outer_class, "sym:name"));
|
||||
if (String* name = Getattr(outer_class, "sym:name")) {
|
||||
Push(symname, ".");
|
||||
Push(symname, name);
|
||||
}
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
if (nspace) {
|
||||
|
|
|
|||
|
|
@ -210,10 +210,14 @@ public:
|
|||
String *nspace = Getattr(n, "sym:nspace");
|
||||
String *symname = Copy(Getattr(n, "sym:name"));
|
||||
if (symname && !GetFlag(n, "feature:flatnested")) {
|
||||
for (Node *outer_class = Getattr(n, "nested:outer"); outer_class; outer_class = Getattr(outer_class, "nested:outer")) {
|
||||
Push(symname, jnidescriptor ? "$" : ".");
|
||||
Push(symname, Getattr(outer_class, "sym:name"));
|
||||
}
|
||||
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, name);
|
||||
}
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
if (nspace) {
|
||||
if (package && !jnidescriptor)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue