diff --git a/Examples/test-suite/java/multiple_inheritance_interfaces_runme.java b/Examples/test-suite/java/multiple_inheritance_interfaces_runme.java index f2a9680aa..3f2b00000 100644 --- a/Examples/test-suite/java/multiple_inheritance_interfaces_runme.java +++ b/Examples/test-suite/java/multiple_inheritance_interfaces_runme.java @@ -58,6 +58,16 @@ public class multiple_inheritance_interfaces_runme { checkBaseAndInterfaces(L.class, false, "", new String[] {"IJ", "IK", "IL"}); checkBaseAndInterfaces(M.class, false, "", new String[] {"IJ", "IK", "IL"}); + checkBaseAndInterfaces(P.class, false, "", new String[] {}); + checkBaseAndInterfaces(IQ.class, true, "", new String[] {}); + checkBaseAndInterfaces(Q.class, false, "", new String[] {"IQ"}); + checkBaseAndInterfaces(R.class, false, "P", new String[] {"IQ"}); + checkBaseAndInterfaces(S.class, false, "P", new String[] {"IQ"}); + checkBaseAndInterfaces(T.class, false, "", new String[] {"IQ"}); + checkBaseAndInterfaces(U.class, false, "R", new String[] {}); + checkBaseAndInterfaces(V.class, false, "S", new String[] {}); + checkBaseAndInterfaces(W.class, false, "T", new String[] {}); + // overloaded methods check D d = new D(); d.ia(); diff --git a/Examples/test-suite/multiple_inheritance_interfaces.i b/Examples/test-suite/multiple_inheritance_interfaces.i index aec5367f6..8eb315f88 100644 --- a/Examples/test-suite/multiple_inheritance_interfaces.i +++ b/Examples/test-suite/multiple_inheritance_interfaces.i @@ -6,7 +6,6 @@ DECLARE_INTERFACE_RENAME(IA, A, IA) DECLARE_INTERFACE_RENAME(IB, B, IB) DECLARE_INTERFACE_RENAME(IC, C, IC) #endif - %inline %{ struct IA { virtual void ia() {}; @@ -30,3 +29,17 @@ struct IK : IJ {}; struct IL : IK {}; struct M : IL {}; %} + +#if defined(SWIGJAVA) || defined(SWIGCSHARP) +DECLARE_INTERFACE_RENAME(IQ, Q, IQ) +#endif +%inline %{ +struct P { virtual void p() {}; }; +struct IQ { virtual void iq() {}; }; +struct R : IQ, P {}; +struct S : P, IQ {}; +struct T : IQ {}; +struct U : R {}; +struct V : S {}; +struct W : T {}; +%}