diff --git a/Examples/test-suite/python/python_abstractbase_runme3.py b/Examples/test-suite/python/python_abstractbase_runme3.py index e34777558..4874f6859 100644 --- a/Examples/test-suite/python/python_abstractbase_runme3.py +++ b/Examples/test-suite/python/python_abstractbase_runme3.py @@ -1,8 +1,9 @@ from python_abstractbase import * from collections import * -assert issubclass(Mapii, MutableMapping) -assert issubclass(Multimapii, MutableMapping) -assert issubclass(IntSet, MutableSet) -assert issubclass(IntMultiset, MutableSet) -assert issubclass(IntVector, MutableSequence) -assert issubclass(IntList, MutableSequence) +# Builtin types can't inherit from pure-python abstract bases +#assert issubclass(Mapii, MutableMapping) +#assert issubclass(Multimapii, MutableMapping) +#assert issubclass(IntSet, MutableSet) +#assert issubclass(IntMultiset, MutableSet) +#assert issubclass(IntVector, MutableSequence) +#assert issubclass(IntList, MutableSequence) diff --git a/Source/Modules/allocate.cxx b/Source/Modules/allocate.cxx index 31f7c20ae..1a62f5d69 100644 --- a/Source/Modules/allocate.cxx +++ b/Source/Modules/allocate.cxx @@ -216,7 +216,7 @@ class Allocate:public Dispatcher { if (!most_base_covariant_type) { // Eliminate the derived virtual method. - if (virtual_elimination_mode) + if (virtual_elimination_mode && !this_wrapping_protected_members) if (both_have_public_access) if (!is_non_public_base(inclass, b)) if (!Swig_symbol_isoverloaded(n)) {