On 27 August 2012 07:52, Walter Bright <newshou...@digitalmars.com> wrote:

> On 8/26/2012 9:25 PM, Chris Cain wrote:
>
>> On Monday, 27 August 2012 at 04:01:10 UTC, Walter Bright wrote:
>>
>>> What happens with the name mangling? What about overloading? template
>>> type
>>> deduction? type specialization? type equivalence? type covariance?
>>>
>>
>> Name mangling: Without knowing enough about compiler making, I'm not sure
>> why it
>> matters. I couldn't answer, sorry.
>>
>
> The mangled names have a 1:1 correspondence with types. A mangled name
> can, for example, be reversed into a type.
>
> If default args form part of the type, then they'll have to be mangled in,
> too. This causes a rather long list of substantial problems.
>

This sounds like an implementation detail/dmd quirk is defining the
language spec...
I generally agree with the usage proposal above, it should be metadata that
doesn't affect type equivalence (although I'd probably expect is(f1 ==
f2def) should be true rather than false).
If that info needs to be mangled into the name to reproduce the type later,
fine, is that a problem? Perhaps stick it at the end of the mangled name in
a new metadata suffix that is truncated prior to any comparisons for
equality?

This actually rather relates to the attribute/annotation
proposals/conversations we were having some time back. If this is
addressed, then it may enable attributes too.

Reply via email to