mirror of
https://github.com/pybind/pybind11.git
synced 2024-11-11 08:03:55 +00:00
Merge pull request #212 from abergmeier/master
Increase available information on invocation error.
This commit is contained in:
commit
ec10c20ba5
@ -29,7 +29,7 @@ kw_func(x=5, y=10)
|
||||
kw_func(x=5, y=10)
|
||||
Caught expected exception: Incompatible function arguments. The following argument types are supported:
|
||||
1. (x : int = 100L, y : int = 200L) -> NoneType
|
||||
|
||||
Invoked with:
|
||||
kw_func4: 13 17
|
||||
kw_func4: 1 2 3
|
||||
kw_func(x=1234, y=5678)
|
||||
|
@ -11,7 +11,7 @@ Got void ptr : 0x7f9ba0f3c430
|
||||
Called Example1 destructor (0)
|
||||
Caught expected exception: Incompatible function arguments. The following argument types are supported:
|
||||
1. (capsule) -> NoneType
|
||||
|
||||
Invoked with: [1, 2, 3]
|
||||
None
|
||||
Got null str : 0x0
|
||||
<example.StringList object at 0x10d3277a0>
|
||||
|
@ -14,7 +14,7 @@ Polly is a parrot
|
||||
Molly is a dog
|
||||
The following error is expected: Incompatible function arguments. The following argument types are supported:
|
||||
1. (example.Dog) -> NoneType
|
||||
|
||||
Invoked with: <Pet object at 0>
|
||||
Callback function 1 called!
|
||||
False
|
||||
Callback function 2 called : Hello, x, True, 5
|
||||
|
@ -7,8 +7,8 @@ Yay..
|
||||
0==0, 1==1, 2==2, 3==3, 4==4, 5==5, 6==6, 7==7, 8==8, 9==9,
|
||||
Failed as expected: Incompatible function arguments. The following argument types are supported:
|
||||
1. (example.issues.ElementA) -> NoneType
|
||||
|
||||
Invoked with: None
|
||||
Failed as expected: Incompatible function arguments. The following argument types are supported:
|
||||
1. (int) -> int
|
||||
|
||||
Invoked with: 5.2
|
||||
12.0
|
||||
|
@ -422,6 +422,14 @@ protected:
|
||||
msg += it2->signature;
|
||||
msg += "\n";
|
||||
}
|
||||
msg += " Invoked with: ";
|
||||
tuple args_(args, true);
|
||||
for( std::size_t ti = 0; ti != args_.size(); ++ti)
|
||||
{
|
||||
msg += static_cast<std::string>(static_cast<object>(args_[ti]).str());
|
||||
if ((ti + 1) != args_.size() )
|
||||
msg += ", ";
|
||||
}
|
||||
PyErr_SetString(PyExc_TypeError, msg.c_str());
|
||||
return nullptr;
|
||||
} else if (!result) {
|
||||
|
Loading…
Reference in New Issue
Block a user