Enhanced to check typedef'd parameters in directors - Scott Michel contribution.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5238 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
71e1a81d66
commit
57b8d0ea70
2 changed files with 31 additions and 7 deletions
|
|
@ -11,7 +11,8 @@ public:
|
|||
{ /* NOP */ }
|
||||
virtual ~Foo()
|
||||
{ /* NOP */ }
|
||||
virtual int meth(T param) { return param; }
|
||||
virtual int meth(T param)
|
||||
{ return param; }
|
||||
};
|
||||
|
||||
typedef Foo<int> Foo_int;
|
||||
|
|
@ -21,6 +22,7 @@ class Bar
|
|||
public:
|
||||
virtual ~Bar();
|
||||
virtual Foo_int *meth();
|
||||
virtual void foo_meth(Foo_int &, int);
|
||||
};
|
||||
|
||||
Bar::~Bar()
|
||||
|
|
@ -31,6 +33,11 @@ Bar::meth()
|
|||
{
|
||||
return new Foo_int();
|
||||
}
|
||||
|
||||
void
|
||||
Bar::foo_meth(Foo_int &arg, int param)
|
||||
{
|
||||
}
|
||||
%}
|
||||
|
||||
%template(Foo_integers) Foo<int>;
|
||||
|
|
|
|||
|
|
@ -19,25 +19,27 @@ public class director_wombat_runme
|
|||
|
||||
a = b.meth();
|
||||
if ((retval = a.meth(49)) != 49) {
|
||||
System.out.println("Test failed: retval = " + retval + ", expected 49");
|
||||
System.exit(1);
|
||||
throw new RuntimeException ("Test failed: retval = " + retval + ", expected 49");
|
||||
}
|
||||
|
||||
a.delete();
|
||||
|
||||
a = new Foo_integers_derived();
|
||||
if ((retval = a.meth(62)) != 62 + 2) {
|
||||
System.out.println("Test failed: retval = " + retval + ", expected 62 + 2");
|
||||
System.exit(1);
|
||||
throw new RuntimeException ("Test failed: retval = " + retval + ", expected 62 + 2");
|
||||
}
|
||||
|
||||
a.delete();
|
||||
|
||||
a = new Foo_integers_derived_2();
|
||||
if ((retval = a.meth(37)) != 37) {
|
||||
System.out.println("Test failed: retval = " + retval + ", expected 37");
|
||||
System.exit(1);
|
||||
throw new RuntimeException ("Test failed: retval = " + retval + ", expected 37");
|
||||
}
|
||||
|
||||
b.delete();
|
||||
|
||||
b = new Bar_derived_1();
|
||||
b.foo_meth(a, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -61,3 +63,18 @@ class Foo_integers_derived_2 extends Foo_integers
|
|||
super();
|
||||
}
|
||||
}
|
||||
|
||||
class Bar_derived_1 extends Bar
|
||||
{
|
||||
public Bar_derived_1()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public void foo_meth(Foo_integers foo_obj, int param)
|
||||
{
|
||||
if (!(foo_obj instanceof Foo_integers_derived_2)) {
|
||||
throw new RuntimeException ("Test failed: foo_obj is not Foo_integers_derived_2, got " + foo_obj);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue