mirror of https://github.com/swig/swig
153 lines
3.0 KiB
OpenEdge ABL
153 lines
3.0 KiB
OpenEdge ABL
// Test a mix of forward class declarations, class definitions, using declarations and using directives.
|
|
|
|
%module class_scope_namespace
|
|
|
|
%warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) H::HH;
|
|
%warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) Space8::I::II;
|
|
|
|
%inline %{
|
|
struct A;
|
|
namespace Space1 {
|
|
namespace SubSpace1 {
|
|
struct A {
|
|
void aa(Space1::SubSpace1::A, SubSpace1::A, A) {}
|
|
};
|
|
void aaa(Space1::SubSpace1::A, SubSpace1::A, A) {}
|
|
}
|
|
}
|
|
|
|
namespace Space2 {
|
|
struct B;
|
|
}
|
|
using Space2::B;
|
|
struct B {
|
|
void bb(Space2::B, B) {}
|
|
};
|
|
void bbb(Space2::B, B) {}
|
|
|
|
namespace Space3 {
|
|
namespace SubSpace3 {
|
|
struct C;
|
|
struct D;
|
|
}
|
|
}
|
|
struct C;
|
|
struct D;
|
|
namespace Space3 {
|
|
struct C;
|
|
struct SubSpace3::C {
|
|
void cc(Space3::SubSpace3::C, SubSpace3::C) {}
|
|
};
|
|
using SubSpace3::D;
|
|
struct SubSpace3::D {
|
|
void dd(Space3::SubSpace3::D, SubSpace3::D, D) {}
|
|
};
|
|
void ccc(Space3::SubSpace3::C, SubSpace3::C) {}
|
|
void ddd(Space3::SubSpace3::D, SubSpace3::D, D) {}
|
|
}
|
|
|
|
namespace Space4 {
|
|
namespace SubSpace4 {
|
|
struct E;
|
|
}
|
|
}
|
|
using namespace Space4;
|
|
using SubSpace4::E;
|
|
// Was added to incorrect namespace in swig-3.0.12
|
|
struct SubSpace4::E {
|
|
void ee(Space4::SubSpace4::E, SubSpace4::E, E) {}
|
|
};
|
|
void eee(Space4::SubSpace4::E, SubSpace4::E, E) {}
|
|
|
|
namespace Space5 {
|
|
namespace SubSpace5 {
|
|
namespace SubSubSpace5 {
|
|
struct F;
|
|
}
|
|
}
|
|
}
|
|
namespace Space5 {
|
|
using namespace SubSpace5;
|
|
using SubSubSpace5::F;
|
|
// Was added to incorrect namespace in swig-3.0.12
|
|
struct SubSubSpace5::F {
|
|
void ff(Space5::SubSpace5::SubSubSpace5::F, SubSpace5::SubSubSpace5::F, SubSubSpace5::F, F) {}
|
|
};
|
|
void fff(Space5::SubSpace5::SubSubSpace5::F, SubSpace5::SubSubSpace5::F, SubSubSpace5::F, F) {}
|
|
}
|
|
|
|
namespace Space6 {
|
|
struct G;
|
|
namespace SubSpace6 {
|
|
struct G;
|
|
}
|
|
}
|
|
namespace Space6 {
|
|
struct SubSpace6::G {
|
|
void gg(Space6::SubSpace6::G, SubSpace6::G) {}
|
|
};
|
|
void ggg(Space6::SubSpace6::G, SubSpace6::G) {}
|
|
}
|
|
|
|
struct HH;
|
|
struct H {
|
|
struct HH {
|
|
void hh(H::HH) {}
|
|
};
|
|
};
|
|
void hhh(H::HH) {}
|
|
|
|
namespace Space8 {
|
|
struct II;
|
|
struct I {
|
|
struct II {
|
|
void ii(Space8::I::II, I::II) {}
|
|
};
|
|
};
|
|
void iii(Space8::I::II, I::II) {}
|
|
}
|
|
|
|
struct J;
|
|
namespace Space9 {
|
|
namespace SubSpace9 {
|
|
struct J {
|
|
void jj(Space9::SubSpace9::J, SubSpace9::J, J) {}
|
|
};
|
|
void jjj(Space9::SubSpace9::J, SubSpace9::J, J) {}
|
|
}
|
|
}
|
|
|
|
namespace Space10 {
|
|
struct K;
|
|
}
|
|
namespace Space10 {
|
|
namespace SubSpace10 {
|
|
struct K {
|
|
void kk(Space10::SubSpace10::K, SubSpace10::K, K) {}
|
|
};
|
|
void kkk(Space10::SubSpace10::K, SubSpace10::K, K) {}
|
|
}
|
|
}
|
|
|
|
namespace OtherSpace {
|
|
struct L;
|
|
struct M;
|
|
}
|
|
using OtherSpace::L;
|
|
namespace Space11 {
|
|
using OtherSpace::M;
|
|
namespace SubSpace11 {
|
|
struct L {
|
|
void ll(Space11::SubSpace11::L, SubSpace11::L, L) {}
|
|
};
|
|
void lll(Space11::SubSpace11::L, SubSpace11::L, L) {}
|
|
struct M {
|
|
void mm(Space11::SubSpace11::M, SubSpace11::M, M) {}
|
|
};
|
|
void mmm(Space11::SubSpace11::M, SubSpace11::M, M) {}
|
|
}
|
|
}
|
|
|
|
%}
|
|
|