swig/Source/Modules
Marcelo Matus c41374becc %rename(x) Foo::y();
%inline %{
class Foo {
protected:
    void x();
public:
    void y();
};

%}

will work in plain or plain director mode, but it will complain the
same as before with director protected support.

The reason is that the parser emmits the warning, and at that stage it
is not possible to decide if the protected Foo::x() could or not
conflict with the renamed Foo::y(), since Foo::x() could be virtual,
even when no "virtual" attribute is used.



Core:
 parser.y: Detect the dirprot mode and prevents the generation of
           protected symbols at the parsing stage.
 lang.cxx: Export the director_protected_mode for parser.y and the
           director protected member detection is much cleaner.
 main.cxx: Fix the -dirprot flag, it was working in SWIG_FEATURE but
           not in the command line.(minor thing not relate to the error).
 swigmod.h: added Lang::dirprot_mode() for cleaner detection.
 utils.cxx: is_member_director() centralizes and improve the test.

Test suite:
 protected_rename.i: added %inline, so it can compile now.
 director_protected.i: more cases, checking using %rename.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5530 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-10 23:10:31 +00:00
..
.cvsignore *** empty log message *** 2003-01-22 08:11:51 +00:00
allocate.cxx detecting polymorphic virtual methods properly 2003-12-09 10:36:15 +00:00
browser.cxx Major refactoring of DOH List/Hash iterators. See CHANGES 2003-09-11 20:26:57 +00:00
chicken.cxx Major refactoring of DOH List/Hash iterators. See CHANGES 2003-09-11 20:26:57 +00:00
contract.cxx Major refactoring of contract code. Modifications include: 2003-11-14 18:57:51 +00:00
csharp.cxx Marcelo's suggestion for fixing polymorphic methods that return a polymorphic type. 2003-12-09 22:13:31 +00:00
directors.cxx Common director support functions moved to new file directors.cxx 2003-11-18 20:21:39 +00:00
emit.cxx pesky warning 2003-12-09 22:06:14 +00:00
guile.cxx Don't qualify member function names twice. (Thanks to John Lenz.) 2003-11-21 09:18:10 +00:00
java.cxx Marcelo's suggestion for fixing polymorphic methods that return a polymorphic type. 2003-12-09 22:13:31 +00:00
lang.cxx %rename(x) Foo::y(); 2003-12-10 23:10:31 +00:00
main.cxx %rename(x) Foo::y(); 2003-12-10 23:10:31 +00:00
module.cxx File move 2002-12-03 20:33:35 +00:00
mzscheme.cxx Remove symbol clashes between runtime libraries. 2003-10-05 11:36:52 +00:00
ocaml.cxx The dirprot feature is now disabled by default. Added dirprot option and ruby runtime examples. 2003-12-09 02:52:08 +00:00
overload.cxx extern method declarations moved to header file 2003-11-18 20:21:15 +00:00
perl5.cxx Fixed [ 852119 ] recursive inheritance in output .pm, perl5 2003-12-02 21:57:41 +00:00
php4.cxx Major refactoring of DOH List/Hash iterators. See CHANGES 2003-09-11 20:26:57 +00:00
pike.cxx Major refactoring of DOH List/Hash iterators. See CHANGES 2003-09-11 20:26:57 +00:00
python.cxx The dirprot feature is now disabled by default. Added dirprot option and ruby runtime examples. 2003-12-09 02:52:08 +00:00
README File move 2002-12-03 20:33:35 +00:00
ruby.cxx fixed the problem with 'using' and protected mebers. now it seems to be safe to generate the protected members as protected again. all the test are running and the director_protected_runme.rb now test for the right access control 2003-12-09 23:46:39 +00:00
s-exp.cxx Major refactoring of DOH List/Hash iterators. See CHANGES 2003-09-11 20:26:57 +00:00
swigmain.cxx extern method declarations moved to header file 2003-11-18 20:21:15 +00:00
swigmod.h %rename(x) Foo::y(); 2003-12-10 23:10:31 +00:00
tcl8.cxx Fixed cross module linking of base-classes. Base classes are now located using SWIG_TypeQuery() 2003-11-25 03:51:35 +00:00
typepass.cxx Fixed bus error. Removed inline functions. Minor cleanup. 2003-12-08 15:24:39 +00:00
utils.cxx %rename(x) Foo::y(); 2003-12-10 23:10:31 +00:00
xml.cxx [ 829319 ] XML module tweaks 2003-10-31 17:42:40 +00:00

06/25/2002

This directory contains all of the SWIG language modules.  Many of these
modules contain code that dates back to SWIG1.0.  The module API has changed
a lot in the development releases so this is fairly messy.  We're working on
cleaning it up, but you'll have to bear with us until it's done.

-- Dave