mirror of
https://github.com/pybind/pybind11.git
synced 2024-11-25 22:52:01 +00:00
New issue, when registering type multiple times.
Ideally, the module should fail when loading IMO.
This commit is contained in:
parent
5eda97d7e4
commit
e90bf7cc06
@ -131,4 +131,25 @@ void init_issues(py::module &m) {
|
||||
.def("f", &A::f);
|
||||
|
||||
m2.def("call_f", call_f);
|
||||
|
||||
{
|
||||
struct DuplicateFoo {
|
||||
int id() const { return 1; }
|
||||
};
|
||||
|
||||
struct SingularBar : public DuplicateFoo {
|
||||
};
|
||||
|
||||
pybind11::class_<DuplicateFoo>(m2, "DuplicateFoo")
|
||||
.def_property_readonly("id", &DuplicateFoo::id)
|
||||
;
|
||||
|
||||
pybind11::class_<SingularBar>(m2, "SingularBar")
|
||||
.def(pybind11::init<>())
|
||||
;
|
||||
|
||||
// Second time registration
|
||||
pybind11::class_<DuplicateFoo>(m2, "DuplicateFoo")
|
||||
;
|
||||
}
|
||||
}
|
||||
|
@ -10,6 +10,7 @@ from example.issues import iterator_passthrough
|
||||
from example.issues import ElementList, ElementA, print_element
|
||||
from example.issues import expect_float, expect_int
|
||||
from example.issues import A, call_f
|
||||
from example.issues import SingularBar
|
||||
import gc
|
||||
|
||||
print_cchar("const char *")
|
||||
@ -72,3 +73,9 @@ print("Python version")
|
||||
b = B()
|
||||
call_f(b)
|
||||
|
||||
singularBar = SingularBar()
|
||||
try:
|
||||
singularBar.id
|
||||
except Exception as e:
|
||||
print("Failed as expected: " + str(e))
|
||||
|
||||
|
@ -18,3 +18,4 @@ Python version
|
||||
PyA.PyA()
|
||||
PyA.f()
|
||||
In python f()
|
||||
Failed as expected: 'issues.SingularBar' object has no attribute 'id'
|
||||
|
Loading…
Reference in New Issue
Block a user