Enhanced to check typedef'd parameters in directors - Scott Michel contribution.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5238 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
1ad143cd34
commit
7567736299
2 changed files with 31 additions and 7 deletions
|
|
@ -11,7 +11,8 @@ public:
|
||||||
{ /* NOP */ }
|
{ /* NOP */ }
|
||||||
virtual ~Foo()
|
virtual ~Foo()
|
||||||
{ /* NOP */ }
|
{ /* NOP */ }
|
||||||
virtual int meth(T param) { return param; }
|
virtual int meth(T param)
|
||||||
|
{ return param; }
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef Foo<int> Foo_int;
|
typedef Foo<int> Foo_int;
|
||||||
|
|
@ -21,6 +22,7 @@ class Bar
|
||||||
public:
|
public:
|
||||||
virtual ~Bar();
|
virtual ~Bar();
|
||||||
virtual Foo_int *meth();
|
virtual Foo_int *meth();
|
||||||
|
virtual void foo_meth(Foo_int &, int);
|
||||||
};
|
};
|
||||||
|
|
||||||
Bar::~Bar()
|
Bar::~Bar()
|
||||||
|
|
@ -31,6 +33,11 @@ Bar::meth()
|
||||||
{
|
{
|
||||||
return new Foo_int();
|
return new Foo_int();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Bar::foo_meth(Foo_int &arg, int param)
|
||||||
|
{
|
||||||
|
}
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%template(Foo_integers) Foo<int>;
|
%template(Foo_integers) Foo<int>;
|
||||||
|
|
|
||||||
|
|
@ -19,25 +19,27 @@ public class director_wombat_runme
|
||||||
|
|
||||||
a = b.meth();
|
a = b.meth();
|
||||||
if ((retval = a.meth(49)) != 49) {
|
if ((retval = a.meth(49)) != 49) {
|
||||||
System.out.println("Test failed: retval = " + retval + ", expected 49");
|
throw new RuntimeException ("Test failed: retval = " + retval + ", expected 49");
|
||||||
System.exit(1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
a.delete();
|
a.delete();
|
||||||
|
|
||||||
a = new Foo_integers_derived();
|
a = new Foo_integers_derived();
|
||||||
if ((retval = a.meth(62)) != 62 + 2) {
|
if ((retval = a.meth(62)) != 62 + 2) {
|
||||||
System.out.println("Test failed: retval = " + retval + ", expected 62 + 2");
|
throw new RuntimeException ("Test failed: retval = " + retval + ", expected 62 + 2");
|
||||||
System.exit(1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
a.delete();
|
a.delete();
|
||||||
|
|
||||||
a = new Foo_integers_derived_2();
|
a = new Foo_integers_derived_2();
|
||||||
if ((retval = a.meth(37)) != 37) {
|
if ((retval = a.meth(37)) != 37) {
|
||||||
System.out.println("Test failed: retval = " + retval + ", expected 37");
|
throw new RuntimeException ("Test failed: retval = " + retval + ", expected 37");
|
||||||
System.exit(1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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();
|
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