import concerns (was Re: Historical language survey)

Ivan Senji ivan.senji_REMOVE_ at _THIS__gmail.com
Fri Jul 7 23:50:54 PDT 2006


Walter Bright wrote:
> Brad Roberts wrote:
>> Walter Bright wrote:
>>> Derek Parnell wrote:
>>>> On Sat, 08 Jul 2006 06:56:47 +1000, Walter Bright
>>>> <newshound at digitalmars.com> wrote:
>>>>
>>>>> The alias works at any level you choose to make it. Alias can be
>>>>> used to 'import' any name into the current namespace, making it
>>>>> first class.
>>>>
>>>> Even names that are declared 'private' in the imported module? Is
>>>> that how you want it to work Walter? If so, why do we bother with
>>>> 'private'? What's the point?
>>>
>>> In class scope, access control is done *after* name lookup, not
>>> before. I'm concerned about confusion by reversing the order of that
>>> for module scope.
>>
>> How much begging would it take to try for a release or two having
>> private symbols invisible to the importer?  It's really much more
>> intuitive, imho.  I haven't looked at this part of the front end code,
>> but if it's easy, feel free to make it controllable via a compiler
>> option just for the experiment's time frame.
> 
> The problems happen when one has:
> 
> void foo(int x);
> private void foo(long x);
> 
> So the first foo is found, then overload rules apply, and the second foo
> is selected.

Ok, I think I get it: module level private in D means exactly *nothing*.

:)

How does this sound in the documentation:
"A module level function that is declared private can not be used in
another module unless there is another public function with the same name."
<- This is just crazy(or does it justsound crazy to me), IMO private
"void foo(long x);" in the above example should not be included in the
overload resolution.




More information about the Digitalmars-d mailing list