Skip to content

Commit 2c73e49

Browse files
committed
Document Placement NewExpression
1 parent a453ed8 commit 2c73e49

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

spec/class.dd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1439,7 +1439,7 @@ $(H3 $(LNAME2 anonymous, Anonymous Nested Classes))
14391439

14401440
$(GRAMMAR
14411441
$(GNAME NewAnonClassExpression):
1442-
$(D new) $(D class) $(GLINK ConstructorArgs)$(OPT) $(GLINK AnonBaseClassList)$(OPT) $(GLINK2 struct, AggregateBody)
1442+
$(D new) $(GLINK2 expression, PlacementExpression)$(OPT) $(D class) $(GLINK ConstructorArgs)$(OPT) $(GLINK AnonBaseClassList)$(OPT) $(GLINK2 struct, AggregateBody)
14431443

14441444
$(GNAME ConstructorArgs):
14451445
$(D $(LPAREN)) $(GLINK2 expression, NamedArgumentList)$(OPT) $(D $(RPAREN))

spec/expression.dd

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2920,15 +2920,18 @@ $(H3 $(LNAME2 new_expressions, New Expressions))
29202920

29212921
$(GRAMMAR
29222922
$(GNAME NewExpression):
2923-
$(D new) $(GLINK2 type, Type)
2924-
$(D new) $(GLINK2 type, Type) $(D [) $(GLINK AssignExpression) $(D ])
2925-
$(D new) $(GLINK2 type, Type) $(D $(LPAREN)) $(GLINK NamedArgumentList)$(OPT) $(D $(RPAREN))
2923+
$(D new) $(GLINK PlacementExpression)$(OPT) $(GLINK2 type, Type)
2924+
$(D new) $(GLINK PlacementExpression)$(OPT) $(GLINK2 type, Type) $(D [) $(GLINK AssignExpression) $(D ])
2925+
$(D new) $(GLINK PlacementExpression)$(OPT) $(GLINK2 type, Type) $(D $(LPAREN)) $(GLINK NamedArgumentList)$(OPT) $(D $(RPAREN))
29262926
$(GLINK2 class, NewAnonClassExpression)
2927+
2928+
$(GNAME PlacementExpression):
2929+
$(LPAREN) $(GLINK AssignExpression) $(RPAREN)
29272930
)
29282931

29292932
$(P $(I NewExpression)s allocate memory on the
29302933
$(DDLINK spec/garbage, Garbage Collection, garbage
2931-
collected) heap by default.
2934+
collected) heap unless there is a $(RELATIVE_LINK2 PlacementExpression, PlacementExpression).
29322935
)
29332936

29342937
$(P `new T` constructs an instance of type `T` and default-initializes it.
@@ -3037,6 +3040,8 @@ $(H4 $(LNAME2 new_multidimensional, Multidimensional Arrays))
30373040
}
30383041
-----------
30393042

3043+
$(H4 $(LNAME2 PlacementExpression, Placement Expression))
3044+
30403045
$(H3 $(LNAME2 typeid_expressions, Typeid Expressions))
30413046

30423047
$(GRAMMAR

0 commit comments

Comments
 (0)