[Issue 12740] DMD accepts invalid version syntax

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Wed May 28 19:21:37 PDT 2014


https://issues.dlang.org/show_bug.cgi?id=12740

--- Comment #2 from Kenji Hara <k.hara.pg at gmail.com> ---
The issue is in the definition of ConditionalDeclaration.

$(GNAME ConditionalDeclaration):
    $(GLINK Condition) $(GLINK DeclarationBlock)
    $(GLINK Condition) $(GLINK DeclarationBlock) $(D else) $(GLINK
DeclarationBlock)
    $(GLINK Condition) $(D :) $(GLINK DeclDefs)$(OPT)

In here, `version(id): ...` is explicitly allowed but `version(id) ... else:`
is not.

To fix the issue, ConditionalDeclaration should have following additional
grammar.

    $(GLINK Condition) $(GLINK DeclarationBlock) $(D else) $(D :) $(GLINK
DeclDefs)$(OPT)

--


More information about the Digitalmars-d-bugs mailing list