Skip to content

Commit

Permalink
Merge branch 'wkalinin-nested-ignore-fix'
Browse files Browse the repository at this point in the history
* 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 swig#662
  fix for nested ignored types

Closes swig#662
  • Loading branch information
wsfulton committed Jun 25, 2016
2 parents 2da7e06 + 4aa86c6 commit b24e970
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 6 deletions.
1 change: 1 addition & 0 deletions Examples/test-suite/common.mk
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,7 @@ CPP_TEST_CASES += \
nested_class \
nested_directors \
nested_comment \
nested_ignore \
nested_scope \
nested_template_base \
nested_workaround \
Expand Down
24 changes: 24 additions & 0 deletions Examples/test-suite/nested_ignore.i
Original file line number Diff line number Diff line change
@@ -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(); }
};
}
%}
8 changes: 6 additions & 2 deletions Source/Modules/csharp.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -188,8 +188,12 @@ class CSHARP:public Language {
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) {
Expand Down
12 changes: 8 additions & 4 deletions Source/Modules/java.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -210,10 +210,14 @@ class JAVA:public Language {
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)
Expand Down

0 comments on commit b24e970

Please sign in to comment.