Skip to content

Commit 1de9668

Browse files
authored
Merge pull request swiftlang#34257 from rintaro/syntax-typeexpr-rdar70101520
[Syntax] Parse attributed types in expr position as TypeExprSyntax
2 parents 8051532 + 4117512 commit 1de9668

File tree

3 files changed

+3
-0
lines changed

3 files changed

+3
-0
lines changed

lib/Parse/ParseExpr.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -421,6 +421,7 @@ ParserResult<Expr> Parser::parseExprSequenceElement(Diag<> message,
421421
isType = canParseType();
422422
}
423423
if (isType) {
424+
SyntaxParsingContext TyExprCtx(SyntaxContext, SyntaxKind::TypeExpr);
424425
ParserResult<TypeRepr> ty = parseType();
425426
if (ty.isNonNull())
426427
return makeParserResult(

test/Syntax/Outputs/round_trip_parse_gen.swift.withkinds

+1
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ class C <MemberDeclBlock>{<MemberDeclListItem><FunctionDecl>
7373

7474
func foo3<FunctionSignature><ParameterClause>() </ParameterClause></FunctionSignature><CodeBlock>{<SequenceExpr><DiscardAssignmentExpr>
7575
_ </DiscardAssignmentExpr><AssignmentExpr>= </AssignmentExpr><FunctionCallExpr><ArrayExpr>[<ArrayElement><TypeExpr><SimpleTypeIdentifier>Any</SimpleTypeIdentifier></TypeExpr></ArrayElement>]</ArrayExpr>()</FunctionCallExpr></SequenceExpr><SequenceExpr><DiscardAssignmentExpr>
76+
_ </DiscardAssignmentExpr><AssignmentExpr>= </AssignmentExpr><MemberAccessExpr><TupleExpr>(<TupleExprElement><TypeExpr><AttributedType><Attribute>@convention(c) </Attribute><FunctionType>(<TupleTypeElement><SimpleTypeIdentifier>Int</SimpleTypeIdentifier></TupleTypeElement>) -> <SimpleTypeIdentifier>Void</SimpleTypeIdentifier></FunctionType></AttributedType></TypeExpr></TupleExprElement>)</TupleExpr>.self</MemberAccessExpr></SequenceExpr><SequenceExpr><DiscardAssignmentExpr>
7677
_ </DiscardAssignmentExpr><AssignmentExpr>= </AssignmentExpr><MemberAccessExpr><MemberAccessExpr><IdentifierExpr>a</IdentifierExpr>.a</MemberAccessExpr>.a</MemberAccessExpr></SequenceExpr><SequenceExpr><DiscardAssignmentExpr>
7778
_ </DiscardAssignmentExpr><AssignmentExpr>= </AssignmentExpr><MemberAccessExpr><IdentifierExpr>a</IdentifierExpr>.b</MemberAccessExpr></SequenceExpr><SequenceExpr><DiscardAssignmentExpr>
7879
_ </DiscardAssignmentExpr><AssignmentExpr>= </AssignmentExpr><MemberAccessExpr><IntegerLiteralExpr>1</IntegerLiteralExpr>.a</MemberAccessExpr></SequenceExpr><MemberAccessExpr><MemberAccessExpr><MemberAccessExpr><TupleExpr>

test/Syntax/round_trip_parse_gen.swift

+1
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ class C {
7373

7474
func foo3() {
7575
_ = [Any]()
76+
_ = (@convention(c) (Int) -> Void).self
7677
_ = a.a.a
7778
_ = a.b
7879
_ = 1.a

0 commit comments

Comments
 (0)