Python -builtin constructors silently ignored keyword arguments.
Instead of silenty ignoring them, now a "TypeError: f() takes no keyword arguments" exception is thrown if keyword arguments are used. Hence constructors and normal methods/functions behave in the same way. Closes issue #1595
This commit is contained in:
parent
e7d0533a6f
commit
67e8334ac8
6 changed files with 376 additions and 4 deletions
46
Examples/test-suite/cpp_parameters.i
Normal file
46
Examples/test-suite/cpp_parameters.i
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
%module cpp_parameters
|
||||
|
||||
%{
|
||||
// For Perl
|
||||
#ifdef Zero
|
||||
#undef Zero
|
||||
#endif
|
||||
%}
|
||||
%inline %{
|
||||
|
||||
// Zero arguments
|
||||
struct Zero {
|
||||
Zero() {}
|
||||
int zero() { return 0; }
|
||||
static int stat_zero() { return 0; }
|
||||
};
|
||||
// One mandatory argument
|
||||
struct One {
|
||||
One(int a) {}
|
||||
int one(int a) { return a; }
|
||||
static int stat_one(int a) { return a; }
|
||||
};
|
||||
// Two mandatory arguments
|
||||
struct Two {
|
||||
Two(int a, int b) {}
|
||||
int two(int a, int b) { return a + b; }
|
||||
static int stat_two(int a, int b) { return a + b; }
|
||||
};
|
||||
// Single optional argument
|
||||
struct Single {
|
||||
Single(int a=0) {}
|
||||
int single(int a=0) { return a; }
|
||||
static int stat_single(int a=0) { return a; }
|
||||
};
|
||||
|
||||
int global_zero() { return 0; }
|
||||
int global_one(int a) { return a; }
|
||||
int global_two(int a, int b) { return a + b; }
|
||||
int global_single(int a=0) { return a; }
|
||||
|
||||
#ifdef SWIGPYTHON_BUILTIN
|
||||
bool is_python_builtin() { return true; }
|
||||
#else
|
||||
bool is_python_builtin() { return false; }
|
||||
#endif
|
||||
%}
|
||||
Loading…
Add table
Add a link
Reference in a new issue