%module xxx // Test nspace warnings (based on Examples/test-suite/nspacemove_nested.i) %feature("flatnested"); // must have in order to see nspace warnings when using Python as nested classes are otherwise simply ignored in Python %nspace Space::OuterClass1; %nspacemove(Bad::Space1) Space::OuterClass1::InnerClass1; %nspacemove(Bad::Space1) Space::OuterClass1::InnerEnum1; %nspace Space::OuterClass2; %nonspace Space::OuterClass2::InnerClass2; %nonspace Space::OuterClass2::InnerEnum2; %nspacemove(NewSpace3) Space::OuterClass3; %nspacemove(Bad::Space3) Space::OuterClass3::InnerClass3; %nspacemove(Bad::Space3) Space::OuterClass3::InnerEnum3; %nspacemove(NewSpace4::NewSubSpace4) Space::OuterClass4; %nonspace Space::OuterClass4::InnerClass4; %nonspace Space::OuterClass4::InnerEnum4; %nspacemove(NewSpace5) Space::OuterClass5::InnerClass5; %nspacemove(NewSpace5) Space::OuterClass5::InnerEnum5; %nonspace Space::OuterClass6; %nspace Space::OuterClass6::InnerClass6; %nspace Space::OuterClass6::InnerEnum6; %nonspace Space::OuterClass7; %nspacemove(NewSpace7) Space::OuterClass7::InnerClass7; %nspacemove(NewSpace7) Space::OuterClass7::InnerEnum7; %inline %{ namespace Space { struct OuterClass1 { struct InnerClass1 { struct BottomClass1 {}; }; enum InnerEnum1 { ie1a, ie1b }; void take(InnerEnum1 e) {} }; struct OuterClass2 { struct InnerClass2 { struct BottomClass2 {}; }; enum InnerEnum2 { ie2a, ie2b }; void take(InnerEnum2 e) {} }; struct OuterClass3 { struct InnerClass3 { struct BottomClass3 {}; }; enum InnerEnum3 { ie3a, ie3b }; void take(InnerEnum3 e) {} }; struct OuterClass4 { struct InnerClass4 { struct BottomClass4 {}; }; enum InnerEnum4 { ie4a, ie4b }; void take(InnerEnum4 e) {} }; struct OuterClass5 { struct InnerClass5 { struct BottomClass5 {}; }; enum InnerEnum5 { ie5a, ie5b }; void take(InnerEnum5 e) {} }; struct OuterClass6 { struct InnerClass6 { struct BottomClass6 {}; }; enum InnerEnum6 { ie6a, ie6b }; void take(InnerEnum6 e) {} }; struct OuterClass7 { struct InnerClass7 { struct BottomClass7 {}; }; enum InnerEnum7 { ie7a, ie7b }; void take(InnerEnum7 e) {} }; } %} // These should not warn %nspace Space::OuterClass10; %nspace Space::OuterClass10::InnerClass10; %nspace Space::OuterClass10::InnerEnum10; %nspace Space::OuterClass20; %clearnspace Space::OuterClass20::InnerClass20; %clearnspace Space::OuterClass20::InnerEnum20; %nspacemove(NewOkay30) Space::OuterClass30; %nspace Space::OuterClass30::InnerClass30; %nspace Space::OuterClass30::InnerEnum40; %nspacemove(NewOkay40) Space::OuterClass40; %clearnspace Space::OuterClass40::InnerClass40; %clearnspace Space::OuterClass40::InnerEnum40; %nspacemove(NewOkay50) Space::OuterClass50; %nonspace Space::OuterClass60; %nonspace Space::OuterClass60::InnerClass60; %nonspace Space::OuterClass60::InnerEnum60; %nonspace Space::OuterClass70; %inline %{ namespace Space { struct OuterClass10 { struct InnerClass10 { struct BottomClass10 {}; }; enum InnerEnum10 { ie10a, ie10b }; void take(InnerEnum10 e) {} }; struct OuterClass20 { struct InnerClass20 { struct BottomClass20 {}; }; enum InnerEnum20 { ie20a, ie20b }; void take(InnerEnum20 e) {} }; struct OuterClass30 { struct InnerClass30 { struct BottomClass30 {}; }; enum InnerEnum30 { ie30a, ie30b }; void take(InnerEnum30 e) {} }; struct OuterClass40 { struct InnerClass40 { struct BottomClass40 {}; }; enum InnerEnum40 { ie40a, ie40b }; void take(InnerEnum40 e) {} }; struct OuterClass50 { struct InnerClass50 { struct BottomClass50 {}; }; enum InnerEnum50 { ie50a, ie50b }; void take(InnerEnum50 e) {} }; struct OuterClass60 { struct InnerClass60 { struct BottomClass60 {}; }; enum InnerEnum60 { ie60a, ie60b }; void take(InnerEnum60 e) {} }; struct OuterClass70 { struct InnerClass70 { struct BottomClass70 {}; }; enum InnerEnum70 { ie70a, ie70b }; void take(InnerEnum70 e) {} }; } %}