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:
William S Fulton 2003-11-01 20:06:09 +00:00
commit 57b8d0ea70
2 changed files with 31 additions and 7 deletions

View file

@ -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>;

View file

@ -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);
}
}
}