Is anything private by default when declared in a module?

H. S. Teoh hsteoh at quickfur.ath.cx
Tue Dec 3 07:24:51 PST 2013


On Tue, Dec 03, 2013 at 04:16:04PM +0100, Adam D. Ruppe wrote:
[...]
> BTW private names should be outright invisible outside the module.
> At least private things at module scope. I get really annoyed with
> "public symbol foo from module bar conflicts with private symbol foo
> from module baz". Gee, I wonder which one I wanted to use???

Yeah, that's pretty annoying. Once I wrote a module that exports a
symbol that just so happens coincided with a private symbol in
std.regex, and the compiler complained all over the place about it.
Pretty annoying. Worse yet, the code *worked* when the code that
referenced that symbol was in the same module, but when it was moved out
during code reorg, it started to fail compiling. I was not very happy
with that. (And doesn't that go against what TDPL says, too?)


> But that's a separate issue.
> 
> >https://d.puremagic.com/issues/show_bug.cgi?id=314
> 
> wait, I thought Kenji fixed that? The comments don't say why it was
> reopened... did it just break too much Phobos code or was the fix
> wrong in some other way?

The pull linked to in the bug hasn't been merged yet.


T

-- 
Long, long ago, the ancient Chinese invented a device that lets them see through walls. It was called the "window".


More information about the Digitalmars-d-learn mailing list