mirror of https://github.com/swig/swig
86 lines
2.2 KiB
OpenEdge ABL
86 lines
2.2 KiB
OpenEdge ABL
%module using_member_scopes
|
|
|
|
// Fully qualifying parameter types in a method declared after the using declaration caused
|
|
// a method being incorrectly added by the using declaration even though the declaration already existed
|
|
|
|
%inline %{
|
|
namespace OgreBites
|
|
{
|
|
struct NativeWindowType {};
|
|
class ApplicationContextBase {
|
|
public:
|
|
virtual ~ApplicationContextBase() {}
|
|
virtual void setWindowGrab(NativeWindowType* win, bool grab = true) {}
|
|
void setWindowGrab(bool grab = true) {}
|
|
};
|
|
class ApplicationContextSDL : public ApplicationContextBase {
|
|
public:
|
|
using ApplicationContextBase::setWindowGrab;
|
|
void setWindowGrab(NativeWindowType* win, bool grab = true) {} // This should not be added again as it exists in base class
|
|
};
|
|
/*
|
|
typedef not working yet
|
|
class ApplicationContextSDL2 : public ApplicationContextBase {
|
|
public:
|
|
using ApplicationContextBase::setWindowGrab;
|
|
typedef NativeWindowType* pNWT;
|
|
void setWindowGrab(pNWT win, bool grab) {} // This should not be added again as it exists in base class
|
|
};
|
|
*/
|
|
}
|
|
%}
|
|
|
|
|
|
%inline %{
|
|
// Test using declaration in various positions before and after overloaded methods
|
|
// Testing where the derived class overrides all the base class methods (and more)
|
|
namespace Bites
|
|
{
|
|
struct Base
|
|
{
|
|
virtual ~Base() {}
|
|
virtual void grab() {}
|
|
virtual void grab(int i) {}
|
|
};
|
|
struct Derived1 : public Base
|
|
{
|
|
using Base::grab;
|
|
virtual void grab() {}
|
|
virtual void grab(int i) {}
|
|
};
|
|
struct Derived2 : public Base
|
|
{
|
|
using Base::grab;
|
|
virtual void grab() {}
|
|
virtual void grab(int i) {}
|
|
virtual void grab(int i, double d) {}
|
|
};
|
|
struct Derived3 : public Base
|
|
{
|
|
virtual void grab() {}
|
|
using Base::grab;
|
|
virtual void grab(int i) {}
|
|
};
|
|
struct Derived4 : public Base
|
|
{
|
|
virtual void grab() {}
|
|
using Base::grab;
|
|
virtual void grab(int i) {}
|
|
virtual void grab(int i, double d) {}
|
|
};
|
|
struct Derived5 : public Base
|
|
{
|
|
virtual void grab() {}
|
|
virtual void grab(int i) {}
|
|
using Base::grab;
|
|
};
|
|
struct Derived6 : public Base
|
|
{
|
|
virtual void grab() {}
|
|
virtual void grab(int i) {}
|
|
virtual void grab(int i, double d) {}
|
|
using Base::grab;
|
|
};
|
|
}
|
|
%}
|