Add test for notderived attribute in csbase/javabase typemap
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11201 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
410f7d5913
commit
083d106bc4
3 changed files with 43 additions and 0 deletions
24
Examples/test-suite/csharp/inherit_target_language_runme.cs
Normal file
24
Examples/test-suite/csharp/inherit_target_language_runme.cs
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
using System;
|
||||||
|
using inherit_target_languageNamespace;
|
||||||
|
|
||||||
|
public class inherit_target_language_runme {
|
||||||
|
public static void Main() {
|
||||||
|
new Derived1().targetLanguageBaseMethod();
|
||||||
|
new Derived2().targetLanguageBaseMethod();
|
||||||
|
|
||||||
|
new MultipleDerived1().targetLanguageBaseMethod();
|
||||||
|
new MultipleDerived2().targetLanguageBaseMethod();
|
||||||
|
new MultipleDerived3().f();
|
||||||
|
new MultipleDerived4().g();
|
||||||
|
|
||||||
|
BaseX baseX = new BaseX();
|
||||||
|
baseX.basex();
|
||||||
|
baseX.targetLanguageBase2Method();
|
||||||
|
|
||||||
|
DerivedX derivedX = new DerivedX();
|
||||||
|
derivedX.basex();
|
||||||
|
derivedX.derivedx();
|
||||||
|
derivedX.targetLanguageBase2Method();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -12,10 +12,12 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
public class TargetLanguageBase { public virtual void targetLanguageBaseMethod() {} };
|
public class TargetLanguageBase { public virtual void targetLanguageBaseMethod() {} };
|
||||||
|
public class TargetLanguageBase2 { public virtual void targetLanguageBase2Method() {} };
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%pragma(java) moduleimports=%{
|
%pragma(java) moduleimports=%{
|
||||||
class TargetLanguageBase { public void targetLanguageBaseMethod() {} };
|
class TargetLanguageBase { public void targetLanguageBaseMethod() {} };
|
||||||
|
class TargetLanguageBase2 { public void targetLanguageBase2Method() {} };
|
||||||
%}
|
%}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -61,3 +63,11 @@ struct MultipleDerived3 : MBase3a, MBase3b {};
|
||||||
struct MultipleDerived4 : MBase4a, MBase4b {};
|
struct MultipleDerived4 : MBase4a, MBase4b {};
|
||||||
%}
|
%}
|
||||||
|
|
||||||
|
// Replace a C++ base, but only classes that do not have a C++ base
|
||||||
|
%typemap(csbase, notderived="1") SWIGTYPE "TargetLanguageBase2"
|
||||||
|
|
||||||
|
%inline %{
|
||||||
|
struct BaseX { virtual ~BaseX() {}; void basex() {} };
|
||||||
|
struct DerivedX : BaseX { void derivedx() {} };
|
||||||
|
%}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,15 @@ public class inherit_target_language_runme {
|
||||||
new MultipleDerived2().targetLanguageBaseMethod();
|
new MultipleDerived2().targetLanguageBaseMethod();
|
||||||
new MultipleDerived3().f();
|
new MultipleDerived3().f();
|
||||||
new MultipleDerived4().g();
|
new MultipleDerived4().g();
|
||||||
|
|
||||||
|
BaseX baseX = new BaseX();
|
||||||
|
baseX.basex();
|
||||||
|
baseX.targetLanguageBase2Method();
|
||||||
|
|
||||||
|
DerivedX derivedX = new DerivedX();
|
||||||
|
derivedX.basex();
|
||||||
|
derivedX.derivedx();
|
||||||
|
derivedX.targetLanguageBase2Method();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue