Skip to content

Commit ffb7a50

Browse files
authored
Add function named arguments to grammar (#3625)
1 parent dc5a98b commit ffb7a50

File tree

3 files changed

+20
-11
lines changed

3 files changed

+20
-11
lines changed

spec/attribute.dd

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1024,9 +1024,9 @@ $(GRAMMAR
10241024
$(GNAME UserDefinedAttribute):
10251025
$(D @ $(LPAREN)) $(GLINK2 expression, TemplateArgumentList) $(D $(RPAREN))
10261026
$(D @) $(GLINK2 template, TemplateSingleArgument)
1027-
$(D @) $(GLINK_LEX Identifier) $(D $(LPAREN)) $(GLINK2 expression, ArgumentList)$(OPT) $(D $(RPAREN))
1027+
$(D @) $(GLINK_LEX Identifier) $(D $(LPAREN)) $(GLINK2 expression, NamedArgumentList)$(OPT) $(D $(RPAREN))
10281028
$(D @) $(GLINK2 template, TemplateInstance)
1029-
$(D @) $(GLINK2 template, TemplateInstance) $(D $(LPAREN)) $(GLINK2 expression, ArgumentList)$(OPT) $(D $(RPAREN))
1029+
$(D @) $(GLINK2 template, TemplateInstance) $(D $(LPAREN)) $(GLINK2 expression, NamedArgumentList)$(OPT) $(D $(RPAREN))
10301030
)
10311031

10321032
$(P

spec/class.dd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1382,7 +1382,7 @@ $(GNAME NewAnonClassExpression):
13821382
$(D new) $(D class) $(GLINK ConstructorArgs)$(OPT) $(GLINK AnonBaseClassList)$(OPT) $(GLINK2 struct, AggregateBody)
13831383

13841384
$(GNAME ConstructorArgs):
1385-
$(D $(LPAREN)) $(GLINK2 expression, ArgumentList)$(OPT) $(D $(RPAREN))
1385+
$(D $(LPAREN)) $(GLINK2 expression, NamedArgumentList)$(OPT) $(D $(RPAREN))
13861386

13871387
$(GNAME AnonBaseClassList):
13881388
$(GLINK SuperClassOrInterface)

spec/expression.dd

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1529,8 +1529,8 @@ $(GNAME PostfixExpression):
15291529
$(GSELF PostfixExpression) $(D .) $(GLINK NewExpression)
15301530
$(GSELF PostfixExpression) $(D ++)
15311531
$(GSELF PostfixExpression) $(D --)
1532-
$(GSELF PostfixExpression) $(D $(LPAREN)) $(GLINK ArgumentList)$(OPT) $(D $(RPAREN))
1533-
$(GLINK2 type, TypeCtors)$(OPT) $(GLINK2 type, BasicType) $(D $(LPAREN)) $(GLINK ArgumentList)$(OPT) $(D $(RPAREN))
1532+
$(GSELF PostfixExpression) $(D $(LPAREN)) $(GLINK NamedArgumentList)$(OPT) $(D $(RPAREN))
1533+
$(GLINK2 type, TypeCtors)$(OPT) $(GLINK2 type, BasicType) $(D $(LPAREN)) $(GLINK NamedArgumentList)$(OPT) $(D $(RPAREN))
15341534
$(GLINK IndexExpression)
15351535
$(GLINK SliceExpression)
15361536
)
@@ -1758,9 +1758,9 @@ $(GNAME PrimaryExpression):
17581758
$(GLINK2 type, FundamentalType) $(D .) $(IDENTIFIER)
17591759
$(D $(LPAREN)) $(GLINK2 type, Type) $(D $(RPAREN) .) $(IDENTIFIER)
17601760
$(D $(LPAREN)) $(GLINK2 type, Type) $(D $(RPAREN) .) $(GLINK2 template, TemplateInstance)
1761-
$(GLINK2 type, FundamentalType) $(D $(LPAREN)) $(GLINK ArgumentList)$(OPT) $(D $(RPAREN))
1761+
$(GLINK2 type, FundamentalType) $(D $(LPAREN)) $(GLINK NamedArgumentList)$(OPT) $(D $(RPAREN))
17621762
$(GLINK2 type, TypeCtor) $(D $(LPAREN)) $(GLINK2 type, Type) $(D $(RPAREN)) $(D .) $(IDENTIFIER)
1763-
$(GLINK2 type, TypeCtor) $(D $(LPAREN)) $(GLINK2 type, Type) $(D $(RPAREN)) $(D $(LPAREN)) $(GLINK ArgumentList)$(OPT) $(D $(RPAREN))
1763+
$(GLINK2 type, TypeCtor) $(D $(LPAREN)) $(GLINK2 type, Type) $(D $(RPAREN)) $(D $(LPAREN)) $(GLINK NamedArgumentList)$(OPT) $(D $(RPAREN))
17641764
$(GLINK2 type, Typeof)
17651765
$(GLINK TypeidExpression)
17661766
$(GLINK IsExpression)
@@ -2546,7 +2546,7 @@ $(GRAMMAR
25462546
$(GNAME NewExpression):
25472547
$(D new) $(GLINK2 type, Type)
25482548
$(D new) $(GLINK2 type, Type) $(D [) $(GLINK AssignExpression) $(D ])
2549-
$(D new) $(GLINK2 type, Type) $(D $(LPAREN)) $(GLINK ArgumentList)$(OPT) $(D $(RPAREN))
2549+
$(D new) $(GLINK2 type, Type) $(D $(LPAREN)) $(GLINK NamedArgumentList)$(OPT) $(D $(RPAREN))
25502550
$(GLINK2 class, NewAnonClassExpression)
25512551

25522552
$(GNAME ArgumentList):
@@ -2555,15 +2555,24 @@ $(GNAME ArgumentList):
25552555
$(GLINK AssignExpression) $(D ,) $(GSELF ArgumentList)
25562556
)
25572557

2558+
$(GNAME NamedArgumentList):
2559+
$(GLINK NamedArgument)
2560+
$(GLINK NamedArgument) $(D ,)
2561+
$(GLINK NamedArgument) $(D ,) $(I NamedArgumentList)
2562+
2563+
$(GNAME NamedArgument):
2564+
$(IDENTIFIER) $(D :) $(GLINK AssignExpression)
2565+
$(GLINK AssignExpression)
2566+
25582567
$(P $(I NewExpression)s allocate memory on the
25592568
$(DDLINK spec/garbage, Garbage Collection, garbage
25602569
collected) heap by default.
25612570
)
25622571

25632572
$(P The `new` *Type* form constructs an instance of a type and default-initializes it.)
2564-
$(P The *Type(ArgumentList)* form allows passing either a single initializer
2573+
$(P The *Type(NamedArgumentList)* form allows passing either a single initializer
25652574
of the same type, or multiple arguments for more complex types.
2566-
For class types, *ArgumentList* is passed to the class constructor.
2575+
For class types, *NamedArgumentList* is passed to the class constructor.
25672576
For a dynamic array, the argument sets the initial array length.
25682577
For multidimensional dynamic arrays, each argument corresponds to
25692578
an initial length (see $(RELATIVE_LINK2 new_multidimensional, below)).)
@@ -2585,7 +2594,7 @@ $(GNAME ArgumentList):
25852594

25862595
$(P The *Type[AssignExpression]* form allocates a dynamic array with
25872596
length equal to *AssignExpression*.
2588-
It is preferred to use the *Type(ArgumentList)* form when allocating
2597+
It is preferred to use the *Type(NamedArgumentList)* form when allocating
25892598
dynamic arrays instead, as it is more general.)
25902599

25912600
$(NOTE It is not possible to allocate a static array directly with

0 commit comments

Comments
 (0)