On the subject of error messages

Nick Treleaven via Digitalmars-d digitalmars-d at puremagic.com
Tue May 16 07:00:51 PDT 2017


On Tuesday, 16 May 2017 at 11:20:57 UTC, Stanislav Blinov wrote:
> On Tuesday, 16 May 2017 at 09:04:32 UTC, Nick Treleaven wrote:
>> The problem with this approach is all the work required to 
>> convert existing code to use this style.
...
> That's not a problem. In cases where compiler-provided 
> diagnostic is sufficient, nothing will need to be done.

I don't understand. I thought you were proposing a new language 
feature (constraint expressions or pragma(overloadError))?

>> I think we should allow inline constraints*, non-inline 
>> constraints can still be used/combined. Inline constraints are 
>> easier to read and relate to what they affect, allowing any 
>> non-inline constraint to be considered as something with a 
>> wider scope (i.e., multiple arguments).
>
> No matter if it's inline or trailing, it needs way, *way* 
> better reporting than what we have now, so if you were to 
> prioritize, which one would you solve first? :)

My priority is (1) For the compiler to show which part of a 
constraint failed. Having inline constraints is lower priority, 
except:

* If it turns out to be hard to implement (1) then inline 
constraints would be easy to implement and at least allows finer 
grained error messages, but not for existing code - although 
perhaps it's possible for dfix to auto-update certain constraints 
in existing code.
* Inline constraints can probably be implemented in parallel by 
someone less able to do (1).


More information about the Digitalmars-d mailing list