DMD 0.161 release
Walter Bright
newshound at digitalmars.com
Thu Jun 22 20:49:44 PDT 2006
Stewart Gordon wrote:
> Walter Bright wrote:
>> Stewart Gordon wrote:
>>> Walter Bright wrote:
>>>> Mostly bug fixes.
>>>>
>>>> http://www.digitalmars.com/d/changelog.html
>>>
>>> "Shadowing local variable declarations is now deprecated."
>>>
>>> I thought it had always been illegal by the spec.
>>
>> It wasn't implemented.
>
> So you've implemented it as a deprecation for the time being, rather
> than banning it altogether?
Yes, because it breaks a lot of existing code.
>>> "Fixed Bugzilla 57 in 0.151"
>>>
>>> Why is this in the changelog for 0.161?
>>
>> It was overlooked.
>
> What do you mean? The changelog for 0.151 also lists this bug as fixed.
Yes, but it was left open in bugzilla.
>>> "Fixed Bugzilla 36 (better error message)"
>>> "Fixed Bugzilla 85 (now issues error message)"
>>>
>>> And they're also marked as fixed in Bugzilla. However, at the moment
>>> I can't seem to find the bit of the spec that indicates that either
>>> is illegal code.
>>
>> 36: forward references are an ongoing issue, I'd like to get rid of
>> all such errors. But in the meantime, having feet of clay, some will
>> give error messages instead.
>
> Nobody else I know would claim that changing the error message resulting
> from a bug constitutes fixing the bug.
> If the bug _is_ the bad error message, rather than the fact that an
> error is produced at all, then that's another matter.
Giving clear error messages takes care of the problem for now.
>> 85: It can't be made to work, because an interface handle is different
>> from a class handle.
>
> But it can be made to create a new array of the interface type. But
> this should probably require an explicit cast.
>
> Just looking at the documentation, the "Implicit Conversions" section of
> arrays.html mentions "U[] where U is a base class of T" - I now suppose
> it's just a temptation to think that it would work on interfaces as
> well. Clarification would certainly be welcome.
>
> And we could also do with some decent documentation on what arrays may
> be converted to by explicit casting.
>
>> It doesn't work in C++, either, for the same reasons.
> Since when has C++ had interfaces?
Multiple inheritance is a superset of interfaces.
More information about the Digitalmars-d-announce
mailing list