[Issue 314] Static, renamed, and selective imports are always public

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed May 13 10:45:05 PDT 2009


http://d.puremagic.com/issues/show_bug.cgi?id=314





--- Comment #8 from Christian Kamm <kamm-removethis at incasoftware.de>  2009-05-13 10:45:04 PDT ---
Thanks for the thorough reply. I disagree that overload resolution happens
strictly before access checks. Consider:

a.d --
void foo(int) { printf("foo-i"); }

b.d --
import a : foo;
void foo(float) { printf("foo-f"); }

c.d --
import b;
void main() { int i; foo(i); }

Like this, with dmd 1.043, you get "foo-i". If you remove the selective import
of foo, you get "foo-f". Private imports are invisible at lookup-time, but
renamed or selective private imports aren't. Therefore it seems to me that
making these invisible is the right thing to do. 

The patch does have a problem with overloads though and that ought to be fixed.
Would you accept a patch that works along the same lines but handles overloads
correctly?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list