aboutsummaryrefslogtreecommitdiff
path: root/Examples/test-suite/abstract_inherit_using.i
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/test-suite/abstract_inherit_using.i')
-rw-r--r--Examples/test-suite/abstract_inherit_using.i31
1 files changed, 31 insertions, 0 deletions
diff --git a/Examples/test-suite/abstract_inherit_using.i b/Examples/test-suite/abstract_inherit_using.i
new file mode 100644
index 000000000..25c37ec39
--- /dev/null
+++ b/Examples/test-suite/abstract_inherit_using.i
@@ -0,0 +1,31 @@
+%module abstract_inherit_using
+
+%inline %{
+class AbstractBase
+{
+public:
+ virtual void f(int n) = 0;
+ void f(const char *another_representation_of_n) {}
+ virtual ~AbstractBase() {}
+};
+
+class ConcreteDerived1 : public AbstractBase
+{
+public:
+ ConcreteDerived1() {}
+
+ // Abstract test always worked
+ virtual void f(int n) {}
+ using AbstractBase::f;
+};
+
+class ConcreteDerived2 : public AbstractBase
+{
+public:
+ ConcreteDerived2() {}
+
+ // SWIG thought this class was abstract when using declaration was before method f and didn't generate constructor
+ using AbstractBase::f;
+ virtual void f(int n) {}
+};
+%}