mirror of https://github.com/swig/swig
202 lines
5.8 KiB
OpenEdge ABL
202 lines
5.8 KiB
OpenEdge ABL
%module nspacemove_nested
|
|
|
|
// Tests nested classes for badly configured %nspace, %nonspace, %nspacemove combinations
|
|
// Based off Examples/test-suite/errors/swig_nspacemove.i
|
|
|
|
#if !defined(SWIGCSHARP) && !defined(SWIGJAVA)
|
|
%feature ("flatnested");
|
|
#endif
|
|
|
|
// These will warn, hence suppressed in this testcase
|
|
|
|
// Note that these could also be suppressed at the outer class level, eg:
|
|
// %warnfilter(SWIGWARN_TYPE_NSPACE_SETTING) Space::OuterClass1;
|
|
// Or even at namespace level:
|
|
// %warnfilter(SWIGWARN_TYPE_NSPACE_SETTING) Space;
|
|
|
|
%warnfilter(SWIGWARN_TYPE_NSPACE_SETTING) Space::OuterClass1::InnerClass1;
|
|
%warnfilter(SWIGWARN_TYPE_NSPACE_SETTING) Space::OuterClass2::InnerClass2;
|
|
%warnfilter(SWIGWARN_TYPE_NSPACE_SETTING) Space::OuterClass3::InnerClass3;
|
|
%warnfilter(SWIGWARN_TYPE_NSPACE_SETTING) Space::OuterClass4::InnerClass4;
|
|
%warnfilter(SWIGWARN_TYPE_NSPACE_SETTING) Space::OuterClass5::InnerClass5;
|
|
%warnfilter(SWIGWARN_TYPE_NSPACE_SETTING) Space::OuterClass6::InnerClass6;
|
|
%warnfilter(SWIGWARN_TYPE_NSPACE_SETTING) Space::OuterClass7::InnerClass7;
|
|
|
|
%warnfilter(SWIGWARN_TYPE_NSPACE_SETTING) Space::OuterClass1::InnerEnum1;
|
|
%warnfilter(SWIGWARN_TYPE_NSPACE_SETTING) Space::OuterClass2::InnerEnum2;
|
|
%warnfilter(SWIGWARN_TYPE_NSPACE_SETTING) Space::OuterClass3::InnerEnum3;
|
|
%warnfilter(SWIGWARN_TYPE_NSPACE_SETTING) Space::OuterClass4::InnerEnum4;
|
|
%warnfilter(SWIGWARN_TYPE_NSPACE_SETTING) Space::OuterClass5::InnerEnum5;
|
|
%warnfilter(SWIGWARN_TYPE_NSPACE_SETTING) Space::OuterClass6::InnerEnum6;
|
|
%warnfilter(SWIGWARN_TYPE_NSPACE_SETTING) Space::OuterClass7::InnerEnum7;
|
|
|
|
%nspace Space::OuterClass1;
|
|
%nspacemove(BadSpace1) Space::OuterClass1::InnerClass1;
|
|
%nspacemove(BadSpace1) Space::OuterClass1::InnerEnum1;
|
|
|
|
%nspace Space::OuterClass2;
|
|
%nonspace Space::OuterClass2::InnerClass2;
|
|
%nonspace Space::OuterClass2::InnerEnum2;
|
|
|
|
%nspacemove(NewSpace3) Space::OuterClass3;
|
|
%nspacemove(BadSpace3) Space::OuterClass3::InnerClass3;
|
|
%nspacemove(BadSpace3) Space::OuterClass3::InnerEnum3;
|
|
|
|
%nspacemove(NewSpace4) 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, InnerClass1 c) {}
|
|
};
|
|
struct OuterClass2 {
|
|
struct InnerClass2 {
|
|
struct BottomClass2 {};
|
|
};
|
|
enum InnerEnum2 { ie2a, ie2b };
|
|
void take(InnerEnum2 e, InnerClass2 c) {}
|
|
};
|
|
struct OuterClass3 {
|
|
struct InnerClass3 {
|
|
struct BottomClass3 {};
|
|
};
|
|
enum InnerEnum3 { ie3a, ie3b };
|
|
void take(InnerEnum3 e, InnerClass3 c) {}
|
|
};
|
|
struct OuterClass4 {
|
|
struct InnerClass4 {
|
|
struct BottomClass4 {};
|
|
};
|
|
enum InnerEnum4 { ie4a, ie4b };
|
|
void take(InnerEnum4 e, InnerClass4 c) {}
|
|
};
|
|
struct OuterClass5 {
|
|
struct InnerClass5 {
|
|
struct BottomClass5 {};
|
|
};
|
|
enum InnerEnum5 { ie5a, ie5b };
|
|
void take(InnerEnum5 e, InnerClass5 c) {}
|
|
};
|
|
struct OuterClass6 {
|
|
struct InnerClass6 {
|
|
struct BottomClass6 {};
|
|
};
|
|
enum InnerEnum6 { ie6a, ie6b };
|
|
void take(InnerEnum6 e, InnerClass6 c) {}
|
|
};
|
|
struct OuterClass7 {
|
|
struct InnerClass7 {
|
|
struct BottomClass7 {};
|
|
};
|
|
enum InnerEnum7 { ie7a, ie7b };
|
|
void take(InnerEnum7 e, InnerClass7 c) {}
|
|
};
|
|
}
|
|
%}
|
|
|
|
|
|
// 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;
|
|
|
|
%nspace Space::OuterClass80;
|
|
|
|
%inline %{
|
|
namespace Space {
|
|
struct OuterClass10 {
|
|
struct InnerClass10 {
|
|
struct BottomClass10 {};
|
|
};
|
|
enum InnerEnum10 { ie10a, ie10b };
|
|
void take(InnerEnum10 e, InnerClass10 c) {}
|
|
};
|
|
struct OuterClass20 {
|
|
struct InnerClass20 {
|
|
struct BottomClass20 {};
|
|
};
|
|
enum InnerEnum20 { ie20a, ie20b };
|
|
void take(InnerEnum20 e, InnerClass20 c) {}
|
|
};
|
|
struct OuterClass30 {
|
|
struct InnerClass30 {
|
|
struct BottomClass30 {};
|
|
};
|
|
enum InnerEnum30 { ie30a, ie30b };
|
|
void take(InnerEnum30 e, InnerClass30 c) {}
|
|
};
|
|
struct OuterClass40 {
|
|
struct InnerClass40 {
|
|
struct BottomClass40 {};
|
|
};
|
|
enum InnerEnum40 { ie40a, ie40b };
|
|
void take(InnerEnum40 e, InnerClass40 c) {}
|
|
};
|
|
struct OuterClass50 {
|
|
struct InnerClass50 {
|
|
struct BottomClass50 {};
|
|
};
|
|
enum InnerEnum50 { ie50a, ie50b };
|
|
void take(InnerEnum50 e, InnerClass50 c) {}
|
|
};
|
|
struct OuterClass60 {
|
|
struct InnerClass60 {
|
|
struct BottomClass60 {};
|
|
};
|
|
enum InnerEnum60 { ie60a, ie60b };
|
|
void take(InnerEnum60 e, InnerClass60 c) {}
|
|
};
|
|
struct OuterClass70 {
|
|
struct InnerClass70 {
|
|
struct BottomClass70 {};
|
|
};
|
|
enum InnerEnum70 { ie70a, ie70b };
|
|
void take(InnerEnum70 e, InnerClass70 c) {}
|
|
};
|
|
struct OuterClass80 {
|
|
struct InnerClass80 {
|
|
struct BottomClass80 {};
|
|
};
|
|
enum InnerEnum80 { ie80a, ie80b };
|
|
void take(InnerEnum80 e, InnerClass80 c) {}
|
|
};
|
|
}
|
|
%}
|