diff options
author | Hugo Parente Lima <hugo.pl@gmail.com> | 2011-01-28 16:23:55 -0200 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:13:51 -0300 |
commit | 4c26fce0a8d14bf9c4982473bc62e4c5d25573c1 (patch) | |
tree | ccce92b36e98f71b55e988313091f53f83ca5b0c /tests | |
parent | 067e2a62a378cfea36064cf21891b328fc021aa4 (diff) |
Fix regression that caused overload sorting to not respect argument type renames.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/libsample/overloadsort.h | 5 | ||||
-rw-r--r-- | tests/samplebinding/overload_sorting_test.py | 4 | ||||
-rw-r--r-- | tests/samplebinding/typesystem_sample.xml | 8 |
3 files changed, 17 insertions, 0 deletions
diff --git a/tests/libsample/overloadsort.h b/tests/libsample/overloadsort.h index c95c35728..b3a95bc09 100644 --- a/tests/libsample/overloadsort.h +++ b/tests/libsample/overloadsort.h @@ -71,6 +71,11 @@ public: inline const char *overloadDeep(int x, ImplicitBase &y) { return "ImplicitBase"; } + + + inline const char* pyObjOverload(int, int) { return "int,int"; } + inline const char* pyObjOverload(unsigned char*, int) { return "PyObject,int"; } + }; #endif // OVERLOADSORT_H diff --git a/tests/samplebinding/overload_sorting_test.py b/tests/samplebinding/overload_sorting_test.py index 9d4b1cbeb..0cb86642a 100644 --- a/tests/samplebinding/overload_sorting_test.py +++ b/tests/samplebinding/overload_sorting_test.py @@ -60,6 +60,10 @@ class SimpleOverloadSorting(unittest.TestCase): '''Passing an implicit convertible object to an overload''' self.assert_(self.obj.implicit_overload(ImplicitTarget())) + def testPyObjectSort(self): + self.assertEqual(self.obj.pyObjOverload(1, 2), "int,int") + self.assertEqual(self.obj.pyObjOverload(object(), 2), "PyObject,int") + class DeepOverloadSorting(unittest.TestCase): diff --git a/tests/samplebinding/typesystem_sample.xml b/tests/samplebinding/typesystem_sample.xml index 2667c16d5..636916057 100644 --- a/tests/samplebinding/typesystem_sample.xml +++ b/tests/samplebinding/typesystem_sample.xml @@ -992,6 +992,14 @@ return PyString_FromString("PyObject"); </inject-code> </add-function> + <modify-function signature="pyObjOverload(unsigned char*, int)"> + <modify-argument index="1"> + <replace-type modified-type="PyObject" /> + </modify-argument> + <inject-code> + unsigned char* %1 = 0; + </inject-code> + </modify-function> </value-type> <value-type name="ImplicitTarget"/> |