mirror of https://github.com/swig/swig
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
|
@ -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.Runtime.InteropServices;
|
||||
public class TargetLanguageBase { public virtual void targetLanguageBaseMethod() {} };
|
||||
public class TargetLanguageBase2 { public virtual void targetLanguageBase2Method() {} };
|
||||
%}
|
||||
|
||||
%pragma(java) moduleimports=%{
|
||||
class TargetLanguageBase { public void targetLanguageBaseMethod() {} };
|
||||
class TargetLanguageBase2 { public void targetLanguageBase2Method() {} };
|
||||
%}
|
||||
|
||||
|
||||
|
@ -61,3 +63,11 @@ struct MultipleDerived3 : MBase3a, MBase3b {};
|
|||
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 MultipleDerived3().f();
|
||||
new MultipleDerived4().g();
|
||||
|
||||
BaseX baseX = new BaseX();
|
||||
baseX.basex();
|
||||
baseX.targetLanguageBase2Method();
|
||||
|
||||
DerivedX derivedX = new DerivedX();
|
||||
derivedX.basex();
|
||||
derivedX.derivedx();
|
||||
derivedX.targetLanguageBase2Method();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue