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) )