diff --git a/Examples/test-suite/cpp11_strongly_typed_enumerations.i b/Examples/test-suite/cpp11_strongly_typed_enumerations.i index 8846d6877..feb7399a1 100644 --- a/Examples/test-suite/cpp11_strongly_typed_enumerations.i +++ b/Examples/test-suite/cpp11_strongly_typed_enumerations.i @@ -151,82 +151,6 @@ public: }; }; -/* -enum class Enum12 -{ - Val1 = 300, - Val2 = 400, - Val3, - Val4 -}; - -enum Enum13 -{ - Val1 = 300, - Val2 = 400, - Val3, - Val4 -}; -*/ - -namespace NS1 -{ - enum class Enum12 - { - Val1 = 300, - Val2 = 400, - Val3, - Val4 - }; - - enum Enum13 - { - Val1 = 300, - Val2 = 400, - Val3, - Val4 - }; - - class Class3 - { - public: - enum class Enum12 - { - Val1 = 300, - Val2 = 400, - Val3, - Val4 - }; - - enum Enum13 - { - Val1 = 300, - Val2 = 400, - Val3, - Val4 - }; - - struct Struct1 - { - enum class Enum14 - { - Val1 = 300, - Val2 = 400, - Val3, - Val4 - }; - - enum Enum15 - { - Val1 = 300, - Val2 = 400, - Val3, - Val4 - }; - }; - }; -} - /* TODO enum class MyClass {AAA, BBB, CCC}; diff --git a/Source/Modules/java.cxx b/Source/Modules/java.cxx index 411f7ad31..1fbc9dee2 100644 --- a/Source/Modules/java.cxx +++ b/Source/Modules/java.cxx @@ -3003,10 +3003,21 @@ public: value = NewStringf("%s.%s()", full_imclass_name ? full_imclass_name : imclass_name, Swig_name_get(getNSpace(), symname)); } else { memberconstantHandler(n); - String* full_proxy_class_sym_name = NewString(full_proxy_class_name); + String* outerClassesPrefix = NULL; + if (Node *outer = Getattr(getCurrentClass(), "nested:outer")) { + outerClassesPrefix = Copy(Getattr(outer, "sym:name")); + for (outer = Getattr(outer, "nested:outer"); outer != 0; outer = Getattr(outer, "nested:outer")) { + Push(outerClassesPrefix, "."); + Push(outerClassesPrefix, Getattr(outer, "sym:name")); + } + } + String* full_proxy_class_sym_name = outerClassesPrefix ? NewStringf("%s.%s", outerClassesPrefix, proxy_class_name) : NewStringf("%s", proxy_class_name); Replaceall(full_proxy_class_sym_name, ".", "_"); + /* Printf(stdout, "Change proxy class symname '%s' -> '%s'\n", proxy_class_name, full_proxy_class_sym_name); */ value = NewStringf("%s.%s()", full_imclass_name ? full_imclass_name : imclass_name, Swig_name_get(getNSpace(), Swig_name_member(0, full_proxy_class_sym_name, symname))); Delete(full_proxy_class_sym_name); + if (outerClassesPrefix) + Delete(outerClassesPrefix); } // Delete temporary symname if it was created