| from swig_test_utils import swig_check | |
| import cpp11_template_using_base as m | |
| d = m.DerivedInt() | |
| swig_check(d.call(7), "Int:7") | |
| # Inheriting constructor: using I::I; brings IntCase(int) into DerivedInt | |
| d10 = m.DerivedInt(10) | |
| swig_check(d10.call(7), "Int:17") | |
| # Inheriting constructor through a typedef-name for a template-instance base (issue #2951) | |
| swig_check(m.TypedefMixin().call(7), "Int:7") | |
| swig_check(m.TypedefMixin(10).call(7), "Int:17") | |
| # As above but the unqualified-id is the base template's own name through the typedef (issue #2951) | |
| swig_check(m.TypedefNameMixin().call(7), "Int:7") | |
| swig_check(m.TypedefNameMixin(10).call(7), "Int:17") | |
| # As above but through a typedef of a typedef (issue #2951) | |
| swig_check(m.TypedefChainMixin().call(7), "Int:7") | |
| swig_check(m.TypedefChainMixin(10).call(7), "Int:17") | |
| # Multiple bases plus a typedef of a typedef naming the base (issue #2951) | |
| tcmb = m.TypedefChainMultiBase() | |
| swig_check(tcmb.call(7), "Int:7") | |
| swig_check(tcmb.call(7.5), "Double:7.500000") | |
| swig_check(m.TypedefChainMultiBase(10).call(7), "Int:17") | |
| # Multiple bases where the base is named through a typedef-argument typedef (issue #2951) | |
| tamb = m.TypedefArgMultiBase() | |
| swig_check(tamb.call(7), "Int:7") | |
| swig_check(tamb.call(7.5), "Double:7.500000") | |
| swig_check(m.TypedefArgMultiBase(10).call(7), "Int:17") | |
| # Base named through a scope-qualified qualifier: using ns2951::QualBase::QualBase (issue #2951) | |
| swig_check(m.QualifiedBaseUsing().call(7), "Int:7") | |
| swig_check(m.QualifiedBaseUsing(10).call(7), "Int:17") | |
| # Same immediate base named through a non-fully-qualified qualifier: using QualBase::QualBase (issue #2951) | |
| swig_check(m.SemiQualifiedBaseUsing().call(7), "Int:7") | |
| swig_check(m.SemiQualifiedBaseUsing(10).call(7), "Int:17") | |
| # Base reached through a typedef of a typedef whose intermediate lives in a namespace (issue #2951) | |
| swig_check(m.NsChainUsing().call(7), "Int:7") | |
| swig_check(m.NsChainUsing(10).call(7), "Int:17") | |
| o = m.OverloadedIntDouble() | |
| swig_check(o.call(7), "Int:7") | |
| swig_check(o.call(7.5), "Double:7.500000") |