Commit Graph

5 Commits

Author SHA1 Message Date
William S Fulton f156c99907 Fix protected/private nested class referenced in generated upcast helper
Reported on the swig-devel mailing list during early testing of swig-4.5,
where CrossWire SWORD's Perl bindings (GBFHTMLHREF::MyUserData deriving
from BasicFilterUserData) failed to build: a protected or private nested
class deriving from a class used elsewhere in the wrapped API could produce
a runtime upcast helper function referencing the nested class by its
inaccessible qualified name, a C++ compile error. No target language ever
wraps a non-public nested class, so typepass.cxx now simply skips
registering it for the cast table. Fixes it for Lua too, which hits the
same bug as Perl/Python/Ruby/Tcl despite having full nested class support,
since Java/C# are structurally immune (they don't use SWIG's generic
runtime type table at all). Added regression tests to nested_scope.i and
director_protected.i (covering directors/dirprot), with a runtime check in
every director_protected runme confirming polymorphic dispatch through the
wrapped base still works correctly.

Assisted-by: Claude Code (Sonnet 5)
2026-07-11 21:02:49 +01:00
William S Fulton 4a73d986dd Any 'using' statements in the protected section of a class were previously ignored with dirprot mode, certainly with Java and C#. Also directors - a call to a method being defined in the base class, not overridden in a subcalss, but again overridden in a class derived from the first subclass was not being dispatched correcly to the most derived class - affecting non-scripting languages. Fix for C# is based on recent fix for D.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12419 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-02-01 07:02:50 +00:00
William S Fulton dadc8efd14 Fix for the imports testcase breaking - many of the tests have classes with the same names and so these were being compiled as .class files in this directory. Solved this by giving these classes unique names based on the test name.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7175 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-04-28 22:13:32 +00:00
William S Fulton 5fa2399106 Fix for JDK1.5
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5987 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-06-15 19:51:58 +00:00
William S Fulton fc6bdd5217 Director protected method wrapping tests
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5559 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-13 00:21:17 +00:00