From 82b23acdd383b4d5a2249448c8fe565ecfd5fa4e Mon Sep 17 00:00:00 2001 From: k-hara Date: Wed, 2 Sep 2015 17:10:53 +0900 Subject: [PATCH] fix Issue 14745 - Qualifiers rejected for delegate literals --- expression.dd | 14 ++++++++------ grammar.dd | 14 ++++++++------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/expression.dd b/expression.dd index ab82846193..77ece8e914 100644 --- a/expression.dd +++ b/expression.dd @@ -1402,14 +1402,16 @@ $(H4 Function Literals) $(GRAMMAR $(GNAME FunctionLiteral): $(D function) $(GLINK2 declaration, Type)$(OPT) $(GLINK ParameterAttributes) $(OPT) $(GLINK FunctionLiteralBody) - $(D delegate) $(GLINK2 declaration, Type)$(OPT) $(GLINK ParameterAttributes) $(OPT) $(GLINK FunctionLiteralBody) - $(GLINK ParameterAttributes) $(GLINK FunctionLiteralBody) + $(D delegate) $(GLINK2 declaration, Type)$(OPT) $(GLINK ParameterMemberAttributes) $(OPT) $(GLINK FunctionLiteralBody) + $(GLINK ParameterMemberAttributes) $(GLINK FunctionLiteralBody) $(GLINK FunctionLiteralBody) $(GLINK Lambda) $(GNAME ParameterAttributes): - $(GLINK2 function, Parameters) - $(GLINK2 function, Parameters) $(GLINK2 function, FunctionAttributes) + $(GLINK2 function, Parameters) $(GLINK2 function, FunctionAttributes)$(OPT) + +$(GNAME ParameterMemberAttributes): + $(GLINK2 function, Parameters) $(GLINK2 function, MemberFunctionAttributes)$(OPT) $(GNAME FunctionLiteralBody): $(GLINK2 statement, BlockStatement) @@ -1559,8 +1561,8 @@ $(H4 Lambdas) $(GRAMMAR $(GNAME Lambda): $(D function) $(GLINK2 declaration, Type)$(OPT) $(GLINK ParameterAttributes) $(D =>) $(GLINK AssignExpression) - $(D delegate) $(GLINK2 declaration, Type)$(OPT) $(GLINK ParameterAttributes) $(D =>) $(GLINK AssignExpression) - $(GLINK ParameterAttributes) $(D =>) $(GLINK AssignExpression) + $(D delegate) $(GLINK2 declaration, Type)$(OPT) $(GLINK ParameterMemberAttributes) $(D =>) $(GLINK AssignExpression) + $(GLINK ParameterMemberAttributes) $(D =>) $(GLINK AssignExpression) $(IDENTIFIER) $(D =>) $(GLINK AssignExpression) ) diff --git a/grammar.dd b/grammar.dd index 37765b6f65..2441bf3dc5 100644 --- a/grammar.dd +++ b/grammar.dd @@ -377,16 +377,18 @@ $(GNAME ValueExpression): $(GRAMMAR $(GNAME FunctionLiteral): $(D function) $(GLINK Type)$(OPT) $(GLINK ParameterAttributes) $(OPT) $(GLINK FunctionLiteralBody) - $(D delegate) $(GLINK Type)$(OPT) $(GLINK ParameterAttributes) $(OPT) $(GLINK FunctionLiteralBody) - $(GLINK ParameterAttributes) $(GLINK FunctionLiteralBody) + $(D delegate) $(GLINK Type)$(OPT) $(GLINK ParameterMemberAttributes) $(OPT) $(GLINK FunctionLiteralBody) + $(GLINK ParameterMemberAttributes) $(GLINK FunctionLiteralBody) $(GLINK FunctionLiteralBody) $(GLINK Lambda) ) $(GRAMMAR $(GNAME ParameterAttributes): - $(GLINK Parameters) - $(GLINK Parameters) $(GLINK FunctionAttributes) + $(GLINK Parameters) $(GLINK FunctionAttributes)$(OPT) + +$(GNAME ParameterMemberAttributes): + $(GLINK Parameters) $(GLINK MemberFunctionAttributes)$(OPT) $(GNAME FunctionLiteralBody): $(GLINK BlockStatement) @@ -394,8 +396,8 @@ $(GNAME FunctionLiteralBody): $(GNAME Lambda): $(D function) $(GLINK Type)$(OPT) $(GLINK ParameterAttributes) $(D =>) $(GLINK AssignExpression) - $(D delegate) $(GLINK Type)$(OPT) $(GLINK ParameterAttributes) $(D =>) $(GLINK AssignExpression) - $(GLINK ParameterAttributes) $(D =>) $(GLINK AssignExpression) + $(D delegate) $(GLINK Type)$(OPT) $(GLINK ParameterMemberAttributes) $(D =>) $(GLINK AssignExpression) + $(GLINK ParameterMemberAttributes) $(D =>) $(GLINK AssignExpression) $(IDENTIFIER) $(D =>) $(GLINK AssignExpression) )