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

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5526 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Marcelo Matus 2003-12-09 23:46:39 +00:00
commit 35ab21edbb
3 changed files with 33 additions and 22 deletions

View file

@ -21,14 +21,11 @@ public:
}
protected:
#if defined(SWIGPYTHON) || defined(SWIGRUBY) \
|| defined(SWIGJAVA) || defined(SWIGOCAML)
virtual std::string ping() = 0;
#else
virtual std::string ping() { return "";};
#endif
void hellom() {}
virtual void used() {}
};
class Bar : public Foo
@ -45,6 +42,8 @@ public:
int hello;
using Foo::used;
protected:
std::string ping() {
return "Bar::ping();";

View file

@ -9,13 +9,26 @@ class FooBar < Director_protected::Bar
end
end
class Hello < FooBar
public
def pang
ping
end
end
b = Director_protected::Bar.new
fb = FooBar.new
p = 0
begin
fb.ping
b.ping
p = 1
rescue NoProtectedError
end
h = Hello.new
raise RuntimeError if p == 1
raise RuntimeError if b.pong != "Bar::pong();Foo::pong();Bar::ping();"
raise RuntimeError if fb.pong != "Bar::pong();Foo::pong();FooBar::ping();"
raise RuntimeError if h.pang != "FooBar::ping();"