My thoughts & experiences with D so far, as a novice D coder
Timon Gehr
timon.gehr at gmx.ch
Wed Mar 27 14:45:42 PDT 2013
On 03/27/2013 06:46 PM, deadalnix wrote:
> On Wednesday, 27 March 2013 at 17:23:01 UTC, Timon Gehr wrote:
>> I strongly disagree. What would be an example of the problems you are
>> apparently experiencing?
>>
>
> T foo(alias fallback)() {
> // Do some processing return the result. If an error occurs use
> fallback mechanism.
> }
>
> Reasonable thing to do as fallback is to try another method workaround
> the error, throw, whatever.
>
> The problem is that the fallback type inference makes it painful to work
> with, especially if fallback is a template itself.
>
> For instance, in SDC, you can parse ambiguous things as follow :
> parseTypeOrExpression!((parsed) {
> static if(is(typeof(parsed) : Expression)) {
> // Do something
> } else {
> throw SomeException();
> }
> })(tokenRange);
>
I see. What is needed is a way to specify that a function does never
return. (eg. a bottom type)
> This is bound to fail. When a function never return, it make no sens to
> force a type on it and the magic subtype typeof(null) should be used (as
> typeof(null) can cast to anything, it is valid to call the function in
> any condition).
It cannot cast to everything.
More information about the Digitalmars-d
mailing list