Skip to content

Commit d3bf844

Browse files
authored
Merge pull request #70281 from rintaro/astgen-dotselfexpr
[ASTGen] Implement some expressions and types
2 parents c7f32a3 + 8f70dc3 commit d3bf844

File tree

8 files changed

+435
-51
lines changed

8 files changed

+435
-51
lines changed

include/swift/AST/ASTBridging.h

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -656,6 +656,16 @@ SWIFT_NAME("BridgedAssignExpr.createParsed(_:equalsLoc:)")
656656
BridgedAssignExpr BridgedAssignExpr_createParsed(BridgedASTContext cContext,
657657
BridgedSourceLoc cEqualsLoc);
658658

659+
SWIFT_NAME("BridgedAwaitExpr.createParsed(_:awaitLoc:subExpr:)")
660+
BridgedAwaitExpr BridgedAwaitExpr_createParsed(BridgedASTContext cContext,
661+
BridgedSourceLoc cAwaitLoc,
662+
BridgedExpr cSubExpr);
663+
664+
SWIFT_NAME("BridgedBorrowExpr.createParsed(_:borrowLoc:subExpr:)")
665+
BridgedBorrowExpr BridgedBorrowExpr_createParsed(BridgedASTContext cContext,
666+
BridgedSourceLoc cBorrowLoc,
667+
BridgedExpr cSubExpr);
668+
659669
SWIFT_NAME("BridgedCallExpr.createParsed(_:fn:args:)")
660670
BridgedCallExpr BridgedCallExpr_createParsed(BridgedASTContext cContext,
661671
BridgedExpr fn,
@@ -680,11 +690,40 @@ BridgedConditionalCheckedCastExpr_createParsed(BridgedASTContext cContext,
680690
BridgedSourceLoc cQuestionLoc,
681691
BridgedTypeRepr cType);
682692

693+
SWIFT_NAME("BridgedConsumeExpr.createParsed(_:consumeLoc:subExpr:)")
694+
BridgedConsumeExpr BridgedConsumeExpr_createParsed(BridgedASTContext cContext,
695+
BridgedSourceLoc cConsumeLoc,
696+
BridgedExpr cSubExpr);
697+
698+
SWIFT_NAME("BridgedCopyExpr.createParsed(_:copyLoc:subExpr:)")
699+
BridgedCopyExpr BridgedCopyExpr_createParsed(BridgedASTContext cContext,
700+
BridgedSourceLoc cCopyLoc,
701+
BridgedExpr cSubExpr);
702+
683703
SWIFT_NAME("BridgedDiscardAssignmentExpr.createParsed(_:loc:)")
684704
BridgedDiscardAssignmentExpr
685705
BridgedDiscardAssignmentExpr_createParsed(BridgedASTContext cContext,
686706
BridgedSourceLoc cLoc);
687707

708+
SWIFT_NAME("BridgedDictionaryExpr.createParsed(_:lBracketLoc:elements:"
709+
"colonLocs:rBracketLoc:)")
710+
BridgedDictionaryExpr BridgedDictionaryExpr_createParsed(
711+
BridgedASTContext cContext, BridgedSourceLoc cLBracketLoc,
712+
BridgedArrayRef cElements, BridgedArrayRef cCommaLocs,
713+
BridgedSourceLoc cRBracketLoc);
714+
715+
SWIFT_NAME("BridgedDotSelfExpr.createParsed(_:subExpr:dotLoc:selfLoc:)")
716+
BridgedDotSelfExpr BridgedDotSelfExpr_createParsed(BridgedASTContext cContext,
717+
BridgedExpr cSubExpr,
718+
BridgedSourceLoc cDotLoc,
719+
BridgedSourceLoc cSelfLoc);
720+
721+
SWIFT_NAME("BridgedForceTryExpr.createParsed(_:tryLoc:subExpr:exclaimLoc:)")
722+
BridgedForceTryExpr
723+
BridgedForceTryExpr_createParsed(BridgedASTContext cContext,
724+
BridgedSourceLoc cTryLoc, BridgedExpr cSubExpr,
725+
BridgedSourceLoc cExclaimLoc);
726+
688727
SWIFT_NAME(
689728
"BridgedForcedCheckedCastExpr.createParsed(_:asLoc:exclaimLoc:type:)")
690729
BridgedForcedCheckedCastExpr BridgedForcedCheckedCastExpr_createParsed(
@@ -696,6 +735,23 @@ BridgedIsExpr BridgedIsExpr_createParsed(BridgedASTContext cContext,
696735
BridgedSourceLoc cIsLoc,
697736
BridgedTypeRepr cType);
698737

738+
SWIFT_NAME("BridgedOptionalTryExpr.createParsed(_:tryLoc:subExpr:questionLoc:)")
739+
BridgedOptionalTryExpr BridgedOptionalTryExpr_createParsed(
740+
BridgedASTContext cContext, BridgedSourceLoc cTryLoc, BridgedExpr cSubExpr,
741+
BridgedSourceLoc cQuestionLoc);
742+
743+
SWIFT_NAME("BridgedPackElementExpr.createParsed(_:eachLoc:packRefExpr:)")
744+
BridgedPackElementExpr
745+
BridgedPackElementExpr_createParsed(BridgedASTContext cContext,
746+
BridgedSourceLoc cEachLoc,
747+
BridgedExpr cPackRefExpr);
748+
749+
SWIFT_NAME("BridgedPackExpansionExpr.createParsed(_:repeatLoc:patternExpr:)")
750+
BridgedPackExpansionExpr
751+
BridgedPackExpansionExpr_createParsed(BridgedASTContext cContext,
752+
BridgedSourceLoc cRepeatLoc,
753+
BridgedExpr cPatternExpr);
754+
699755
SWIFT_NAME("BridgedSingleValueStmtExpr.createWithWrappedBranches(_:stmt:"
700756
"declContext:mustBeExpr:)")
701757
BridgedSingleValueStmtExpr BridgedSingleValueStmtExpr_createWithWrappedBranches(
@@ -717,12 +773,21 @@ BridgedTernaryExpr BridgedTernaryExpr_createParsed(
717773
BridgedASTContext cContext, BridgedSourceLoc cQuestionLoc,
718774
BridgedExpr cThenExpr, BridgedSourceLoc cColonLoc);
719775

776+
SWIFT_NAME("BridgedTryExpr.createParsed(_:tryLoc:subExpr:)")
777+
BridgedTryExpr BridgedTryExpr_createParsed(BridgedASTContext cContext,
778+
BridgedSourceLoc cTryLoc,
779+
BridgedExpr cSubExpr);
780+
720781
SWIFT_NAME("BridgedTupleExpr.createParsed(_:leftParenLoc:exprs:labels:"
721782
"labelLocs:rightParenLoc:)")
722783
BridgedTupleExpr BridgedTupleExpr_createParsed(
723784
BridgedASTContext cContext, BridgedSourceLoc cLParen, BridgedArrayRef subs,
724785
BridgedArrayRef names, BridgedArrayRef cNameLocs, BridgedSourceLoc cRParen);
725786

787+
SWIFT_NAME("BridgedTupleExpr.createParsedDictionaryElement(_:key:value:)")
788+
BridgedTupleExpr BridgedTupleExpr_createParsedDictionaryElement(
789+
BridgedASTContext cContext, BridgedExpr cKeyExpr, BridgedExpr cValueExpr);
790+
726791
SWIFT_NAME("BridgedIntegerLiteralExpr.createParsed(_:value:loc:)")
727792
BridgedIntegerLiteralExpr
728793
BridgedIntegerLiteralExpr_createParsed(BridgedASTContext cContext,
@@ -970,6 +1035,12 @@ BridgedTypeRepr BridgedImplicitlyUnwrappedOptionalTypeRepr_createParsed(
9701035
BridgedASTContext cContext, BridgedTypeRepr base,
9711036
BridgedSourceLoc cExclamationLoc);
9721037

1038+
SWIFT_NAME("BridgedInverseTypeRepr.createParsed(_:tildeLoc:constraint:)")
1039+
BridgedTypeRepr
1040+
BridgedInverseTypeRepr_createParsed(BridgedASTContext cContext,
1041+
BridgedSourceLoc cTildeLoc,
1042+
BridgedTypeRepr cConstraint);
1043+
9731044
SWIFT_NAME("BridgedMemberTypeRepr.createParsed(_:base:members:)")
9741045
BridgedTypeRepr
9751046
BridgedMemberTypeRepr_createParsed(BridgedASTContext cContext,
@@ -987,6 +1058,12 @@ BridgedProtocolTypeRepr_createParsed(BridgedASTContext cContext,
9871058
BridgedTypeRepr baseType,
9881059
BridgedSourceLoc cProtoLoc);
9891060

1061+
SWIFT_NAME("BridgedPackElementTypeRepr.createParsed(_:base:eachKeywordLoc:)")
1062+
BridgedTypeRepr
1063+
BridgedPackElementTypeRepr_createParsed(BridgedASTContext cContext,
1064+
BridgedTypeRepr base,
1065+
BridgedSourceLoc cEachLoc);
1066+
9901067
SWIFT_NAME(
9911068
"BridgedPackExpansionTypeRepr.createParsed(_:base:repeatKeywordLoc:)")
9921069
BridgedTypeRepr

lib/AST/ASTBridging.cpp

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -869,6 +869,20 @@ BridgedAssignExpr BridgedAssignExpr_createParsed(BridgedASTContext cContext,
869869
return new (cContext.unbridged()) AssignExpr(cEqualsLoc.unbridged());
870870
}
871871

872+
BridgedAwaitExpr BridgedAwaitExpr_createParsed(BridgedASTContext cContext,
873+
BridgedSourceLoc cAwaitLoc,
874+
BridgedExpr cSubExpr) {
875+
return new (cContext.unbridged())
876+
AwaitExpr(cAwaitLoc.unbridged(), cSubExpr.unbridged());
877+
}
878+
879+
BridgedBorrowExpr BridgedBorrowExpr_createParsed(BridgedASTContext cContext,
880+
BridgedSourceLoc cBorrowLoc,
881+
BridgedExpr cSubExpr) {
882+
return new (cContext.unbridged())
883+
BorrowExpr(cBorrowLoc.unbridged(), cSubExpr.unbridged());
884+
}
885+
872886
BridgedClosureExpr
873887
BridgedClosureExpr_createParsed(BridgedASTContext cContext,
874888
BridgedDeclContext cDeclContext,
@@ -910,13 +924,45 @@ BridgedConditionalCheckedCastExpr_createParsed(BridgedASTContext cContext,
910924
cType.unbridged());
911925
}
912926

927+
BridgedConsumeExpr BridgedConsumeExpr_createParsed(BridgedASTContext cContext,
928+
BridgedSourceLoc cConsumeLoc,
929+
BridgedExpr cSubExpr) {
930+
return new (cContext.unbridged())
931+
ConsumeExpr(cConsumeLoc.unbridged(), cSubExpr.unbridged());
932+
}
933+
934+
BridgedCopyExpr BridgedCopyExpr_createParsed(BridgedASTContext cContext,
935+
BridgedSourceLoc cCopyLoc,
936+
BridgedExpr cSubExpr) {
937+
return new (cContext.unbridged())
938+
CopyExpr(cCopyLoc.unbridged(), cSubExpr.unbridged());
939+
}
940+
913941
BridgedDiscardAssignmentExpr
914942
BridgedDiscardAssignmentExpr_createParsed(BridgedASTContext cContext,
915943
BridgedSourceLoc cLoc) {
916944
return new (cContext.unbridged())
917945
DiscardAssignmentExpr(cLoc.unbridged(), /*Implicit=*/false);
918946
}
919947

948+
BridgedDictionaryExpr BridgedDictionaryExpr_createParsed(
949+
BridgedASTContext cContext, BridgedSourceLoc cLBracketLoc,
950+
BridgedArrayRef cElements, BridgedArrayRef cCommaLocs,
951+
BridgedSourceLoc cRBracketLoc) {
952+
return DictionaryExpr::create(cContext.unbridged(), cLBracketLoc.unbridged(),
953+
cElements.unbridged<Expr *>(),
954+
cCommaLocs.unbridged<SourceLoc>(),
955+
cRBracketLoc.unbridged());
956+
}
957+
958+
BridgedForceTryExpr
959+
BridgedForceTryExpr_createParsed(BridgedASTContext cContext,
960+
BridgedSourceLoc cTryLoc, BridgedExpr cSubExpr,
961+
BridgedSourceLoc cExclaimLoc) {
962+
return new (cContext.unbridged()) ForceTryExpr(
963+
cTryLoc.unbridged(), cSubExpr.unbridged(), cExclaimLoc.unbridged());
964+
}
965+
920966
BridgedForcedCheckedCastExpr BridgedForcedCheckedCastExpr_createParsed(
921967
BridgedASTContext cContext, BridgedSourceLoc cAsLoc,
922968
BridgedSourceLoc cExclaimLoc, BridgedTypeRepr cType) {
@@ -925,18 +971,58 @@ BridgedForcedCheckedCastExpr BridgedForcedCheckedCastExpr_createParsed(
925971
cType.unbridged());
926972
}
927973

974+
BridgedDotSelfExpr BridgedDotSelfExpr_createParsed(BridgedASTContext cContext,
975+
BridgedExpr cSubExpr,
976+
BridgedSourceLoc cDotLoc,
977+
BridgedSourceLoc cSelfLoc) {
978+
979+
return new (cContext.unbridged()) DotSelfExpr(
980+
cSubExpr.unbridged(), cDotLoc.unbridged(), cSelfLoc.unbridged());
981+
}
982+
928983
BridgedIsExpr BridgedIsExpr_createParsed(BridgedASTContext cContext,
929984
BridgedSourceLoc cIsLoc,
930985
BridgedTypeRepr cType) {
931986
return IsExpr::create(cContext.unbridged(), cIsLoc.unbridged(),
932987
cType.unbridged());
933988
}
934989

990+
BridgedOptionalTryExpr BridgedOptionalTryExpr_createParsed(
991+
BridgedASTContext cContext, BridgedSourceLoc cTryLoc, BridgedExpr cSubExpr,
992+
BridgedSourceLoc cQuestionLoc) {
993+
return new (cContext.unbridged()) OptionalTryExpr(
994+
cTryLoc.unbridged(), cSubExpr.unbridged(), cQuestionLoc.unbridged());
995+
}
996+
997+
BridgedPackElementExpr
998+
BridgedPackElementExpr_createParsed(BridgedASTContext cContext,
999+
BridgedSourceLoc cEachLoc,
1000+
BridgedExpr cPackRefExpr) {
1001+
return PackElementExpr::create(cContext.unbridged(), cEachLoc.unbridged(),
1002+
cPackRefExpr.unbridged());
1003+
}
1004+
1005+
BridgedPackExpansionExpr
1006+
BridgedPackExpansionExpr_createParsed(BridgedASTContext cContext,
1007+
BridgedSourceLoc cRepeatLoc,
1008+
BridgedExpr cPatternExpr) {
1009+
return PackExpansionExpr::create(cContext.unbridged(), cRepeatLoc.unbridged(),
1010+
cPatternExpr.unbridged(),
1011+
/*genericEnv=*/nullptr);
1012+
}
1013+
9351014
BridgedSequenceExpr BridgedSequenceExpr_createParsed(BridgedASTContext cContext,
9361015
BridgedArrayRef exprs) {
9371016
return SequenceExpr::create(cContext.unbridged(), exprs.unbridged<Expr *>());
9381017
}
9391018

1019+
BridgedTryExpr BridgedTryExpr_createParsed(BridgedASTContext cContext,
1020+
BridgedSourceLoc cTryLoc,
1021+
BridgedExpr cSubExpr) {
1022+
return new (cContext.unbridged())
1023+
TryExpr(cTryLoc.unbridged(), cSubExpr.unbridged());
1024+
}
1025+
9401026
BridgedTupleExpr BridgedTupleExpr_createParsed(BridgedASTContext cContext,
9411027
BridgedSourceLoc cLParen,
9421028
BridgedArrayRef subs,
@@ -950,6 +1036,12 @@ BridgedTupleExpr BridgedTupleExpr_createParsed(BridgedASTContext cContext,
9501036
cRParen.unbridged(), /*Implicit*/ false);
9511037
}
9521038

1039+
BridgedTupleExpr BridgedTupleExpr_createParsedDictionaryElement(
1040+
BridgedASTContext cContext, BridgedExpr cKeyExpr, BridgedExpr cValueExpr) {
1041+
return TupleExpr::createImplicit(
1042+
cContext.unbridged(), {cKeyExpr.unbridged(), cValueExpr.unbridged()}, {});
1043+
}
1044+
9531045
BridgedCallExpr BridgedCallExpr_createParsed(BridgedASTContext cContext,
9541046
BridgedExpr fn,
9551047
BridgedTupleExpr args) {
@@ -1236,6 +1328,15 @@ BridgedTypeRepr BridgedDictionaryTypeRepr_createParsed(
12361328
SourceRange{lSquareLoc, rSquareLoc});
12371329
}
12381330

1331+
BridgedTypeRepr
1332+
BridgedInverseTypeRepr_createParsed(BridgedASTContext cContext,
1333+
BridgedSourceLoc cTildeLoc,
1334+
BridgedTypeRepr cConstraint) {
1335+
1336+
return new (cContext.unbridged())
1337+
InverseTypeRepr(cTildeLoc.unbridged(), cConstraint.unbridged());
1338+
}
1339+
12391340
BridgedTypeRepr
12401341
BridgedMetatypeTypeRepr_createParsed(BridgedASTContext cContext,
12411342
BridgedTypeRepr baseType,
@@ -1254,6 +1355,15 @@ BridgedProtocolTypeRepr_createParsed(BridgedASTContext cContext,
12541355
return new (context) ProtocolTypeRepr(baseType.unbridged(), protoLoc);
12551356
}
12561357

1358+
BridgedTypeRepr
1359+
BridgedPackElementTypeRepr_createParsed(BridgedASTContext cContext,
1360+
BridgedTypeRepr base,
1361+
BridgedSourceLoc cEachLoc) {
1362+
ASTContext &context = cContext.unbridged();
1363+
return new (context)
1364+
PackElementTypeRepr(cEachLoc.unbridged(), base.unbridged());
1365+
}
1366+
12571367
BridgedTypeRepr
12581368
BridgedPackExpansionTypeRepr_createParsed(BridgedASTContext cContext,
12591369
BridgedTypeRepr base,

lib/ASTGen/Sources/ASTGen/Bridge.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,12 @@ extension BridgedStringRef {
130130
}
131131
}
132132

133+
extension BridgedStringRef: ExpressibleByStringLiteral {
134+
public init(stringLiteral str: StaticString) {
135+
self.init(data: str.utf8Start, count: str.utf8CodeUnitCount)
136+
}
137+
}
138+
133139
extension SyntaxProtocol {
134140
/// Obtains the bridged start location of the node excluding leading trivia in the source buffer provided by `astgen`
135141
///

0 commit comments

Comments
 (0)