diff --git a/Examples/test-suite/using_member.i b/Examples/test-suite/using_member.i index 938060956..8fe94d119 100644 --- a/Examples/test-suite/using_member.i +++ b/Examples/test-suite/using_member.i @@ -6,17 +6,15 @@ %inline %{ namespace interface1 { - class A + struct A { - public: int get(int) {return 10;} }; } using interface1::A; -class B : public A +struct B : public A { - public: using A::get; int get(double) {return 20;} }; diff --git a/Source/Swig/symbol.c b/Source/Swig/symbol.c index 14de509be..987f76516 100644 --- a/Source/Swig/symbol.c +++ b/Source/Swig/symbol.c @@ -384,12 +384,15 @@ String *Swig_symbol_qualified_language_scopename(Symtab *n) { /* ----------------------------------------------------------------------------- * Swig_symbol_add_using() + * + * Adds a node to the C symbol table for a using declaration. + * Used for using-declarations within classes/structs. * ----------------------------------------------------------------------------- */ void Swig_symbol_add_using(String * name, String * uname, Node * n) { Hash *h; - h = Swig_symbol_clookup(uname,0); - if (h && checkAttribute(h, "kind", "class")) { + h = Swig_symbol_clookup(uname, 0); + if (h && (checkAttribute(h, "kind", "class") || checkAttribute(h, "kind", "struct"))) { String *qcurrent = Swig_symbol_qualifiedscopename(0); if (qcurrent) { Append(qcurrent, "::");