https://issues.dlang.org/show_bug.cgi?id=15620
Issue ID: 15620
Summary: Use of FunctionLiteralBody grammar rule is not allowed
by the compiler
Product: D
Version: D2
Hardware: All
URL: http://dlang.org/spec/grammar.html#FunctionLiteral
OS: All
Status: NEW
Keywords: spec
Severity: normal
Priority: P1
Component: dlang.org
Assignee: [email protected]
Reporter: [email protected]
Blocks: 10233
unittest
{
alias abc = in { } out { } body { return 100; };
alias abc = () in{ } out { } body { return 100; };
alias abc = () @nogc in{ } out { } body { return 100; };
doThings(in { } out { } body { return 100; });
auto a = in { } out { } body { return 100; };
}
All of these are valid according to the grammar due to the way that the
FunctionLiteralBody rule includes optional contracts. The compiler rejects all
of them.
Which is correct, compiler or grammar?
--