summaryrefslogtreecommitdiff
path: root/Examples/test-suite/using_extend.i
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/test-suite/using_extend.i')
-rw-r--r--Examples/test-suite/using_extend.i51
1 files changed, 51 insertions, 0 deletions
diff --git a/Examples/test-suite/using_extend.i b/Examples/test-suite/using_extend.i
new file mode 100644
index 0000000..e14cc28
--- /dev/null
+++ b/Examples/test-suite/using_extend.i
@@ -0,0 +1,51 @@
+%module(ruby_minherit="1") using_extend
+
+%warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
+ SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
+ SWIGWARN_PHP_MULTIPLE_INHERITANCE) FooBar; // C#, Java, PHP multiple inheritance
+#ifdef SWIGLUA // lua only has one numeric type, so some overloads shadow each other creating warnings
+%warnfilter(SWIGWARN_LANG_OVERLOAD_SHADOW) blah;
+#endif
+
+%extend Foo {
+ int blah(int x, int y) {
+ return x+y;
+ }
+};
+
+%extend Bar {
+ double blah(double x, double y) {
+ return x+y;
+ }
+};
+
+%inline %{
+class Foo {
+public:
+ int blah(int x) { return x; }
+ char *blah(char *x) { return x; }
+};
+
+class Bar {
+public:
+ int duh1() { return 1; }
+ int duh(int x) { return x; }
+ double blah(double x) { return x; }
+};
+
+class FooBar : public Foo, public Bar {
+public:
+ using Foo::blah;
+ using Bar::blah;
+ char *blah(char *x) { return x; }
+};
+
+%}
+
+%extend FooBar
+{
+ using Bar::duh1;
+ using Bar::duh;
+}
+
+