On Friday, 30 October 2015 at 15:45:00 UTC, Shammah Chancellor wrote:
On Friday, 30 October 2015 at 14:39:47 UTC, Atila Neves wrote:
From the discussion here: http://forum.dlang.org/post/[email protected], I thought a library solution would do to fix the issue of getting decent error messages when a type fails to satisfy a template constraint that it was meant to, such as `isInputRange`. So I submitted a PR (https://github.com/D-Programming-Language/phobos/pull/3677), it's been there ever since and doesn't seem like it'll go anywhere from the discussion (http://forum.dlang.org/post/[email protected]).

So the only other way is a DIP (http://wiki.dlang.org/DIP84) for language and compiler support for static inheritance. It's backwards-compatible and IMHO worth looking at.

Please let me know what you think.

Atila

Atila, did you get a chance to look at the std.experimental.concepts work I was doing?

It's very similar to what you seem to want, but the diagnostic messages are really annoying to use as you have to make a default template that the user can fall through to:

https://github.com/schancel/phobos/blob/4ca5d075f31b8e09ba71ac2a53ff56ff0c4ac5b9/std/experimental/concepts.d

-Shammah

I took a look. I don't think we should or need to use classes and therefore dynamic polymorphism to solve the problem of checking for adherence to a static interface.

Mostly all I want is for the compiler to tell me why something doesn't compile - it already knows it but is hiding the information from me.

Atila

Reply via email to