@@ -219,10 +219,13 @@ ParserResult<TypeRepr> Parser::parseTypeSimple(Diag<> MessageID,
219
219
if (!SyntaxContext->isEnabled ())
220
220
return ;
221
221
MetatypeTypeSyntaxBuilder Builder (Context.getSyntaxArena ());
222
+ auto TypeOrProtocol = SyntaxContext->popToken ();
223
+ auto Period = SyntaxContext->popToken ();
224
+ auto BaseType = SyntaxContext->popIf <TypeSyntax>().getValue ();
222
225
Builder
223
- .useTypeOrProtocol (SyntaxContext-> popToken () )
224
- .usePeriod (SyntaxContext-> popToken () )
225
- .useBaseType (SyntaxContext-> popIf <TypeSyntax>(). getValue () );
226
+ .useTypeOrProtocol (TypeOrProtocol )
227
+ .usePeriod (Period )
228
+ .useBaseType (BaseType );
226
229
SyntaxContext->addSyntax (Builder.build ());
227
230
};
228
231
@@ -433,10 +436,13 @@ ParserResult<TypeRepr> Parser::parseType(Diag<> MessageID,
433
436
auto InputNode = SyntaxContext->popIf <TypeSyntax>().getValue ();
434
437
if (auto TupleTypeNode = InputNode.getAs <TupleTypeSyntax>()) {
435
438
// Decompose TupleTypeSyntax and repack into FunctionType.
439
+ auto LeftParen = TupleTypeNode->getLeftParen ();
440
+ auto Arguments = TupleTypeNode->getElements ();
441
+ auto RightParen = TupleTypeNode->getRightParen ();
436
442
Builder
437
- .useLeftParen (TupleTypeNode-> getLeftParen () )
438
- .useArguments (TupleTypeNode-> getElements () )
439
- .useRightParen (TupleTypeNode-> getRightParen () );
443
+ .useLeftParen (LeftParen )
444
+ .useArguments (Arguments )
445
+ .useRightParen (RightParen );
440
446
} else {
441
447
Builder.addTupleTypeElement (SyntaxFactory::makeTupleTypeElement (
442
448
InputNode, /* TrailingComma=*/ None, Context.getSyntaxArena ()));
@@ -705,9 +711,11 @@ Parser::parseTypeSimpleOrComposition(Diag<> MessageID,
705
711
706
712
if (SyntaxContext->isEnabled () && Status.isSuccess ()) {
707
713
CompositionTypeElementSyntaxBuilder Builder (Context.getSyntaxArena ());
714
+ auto Ampersand = SyntaxContext->popToken ();
715
+ auto Type = SyntaxContext->popIf <TypeSyntax>().getValue ();
708
716
Builder
709
- .useAmpersand (SyntaxContext-> popToken () )
710
- .useType (SyntaxContext-> popIf <TypeSyntax>(). getValue () );
717
+ .useAmpersand (Ampersand )
718
+ .useType (Type );
711
719
SyntaxContext->addSyntax (Builder.build ());
712
720
}
713
721
@@ -1114,23 +1122,31 @@ SyntaxParserResult<TypeSyntax, TypeRepr> Parser::parseTypeCollection() {
1114
1122
DictionaryTypeRepr (firstTy.get (), secondTy.get (), colonLoc, brackets);
1115
1123
if (SyntaxContext->isEnabled ()) {
1116
1124
DictionaryTypeSyntaxBuilder Builder (Context.getSyntaxArena ());
1125
+ auto RightSquareBracket = SyntaxContext->popToken ();
1126
+ auto ValueType = SyntaxContext->popIf <TypeSyntax>().getValue ();
1127
+ auto Colon = SyntaxContext->popToken ();
1128
+ auto KeyType = SyntaxContext->popIf <TypeSyntax>().getValue ();
1129
+ auto LeftSquareBracket = SyntaxContext->popToken ();
1117
1130
Builder
1118
- .useRightSquareBracket (SyntaxContext-> popToken () )
1119
- .useValueType (SyntaxContext-> popIf <TypeSyntax>(). getValue () )
1120
- .useColon (SyntaxContext-> popToken () )
1121
- .useKeyType (SyntaxContext-> popIf <TypeSyntax>(). getValue () )
1122
- .useLeftSquareBracket (SyntaxContext-> popToken () );
1131
+ .useRightSquareBracket (RightSquareBracket )
1132
+ .useValueType (ValueType )
1133
+ .useColon (Colon )
1134
+ .useKeyType (KeyType )
1135
+ .useLeftSquareBracket (LeftSquareBracket );
1123
1136
SyntaxNode.emplace (Builder.build ());
1124
1137
}
1125
1138
} else {
1126
1139
// Form the array type.
1127
1140
TyR = new (Context) ArrayTypeRepr (firstTy.get (), brackets);
1128
1141
if (SyntaxContext->isEnabled ()) {
1129
1142
ArrayTypeSyntaxBuilder Builder (Context.getSyntaxArena ());
1143
+ auto RightSquareBracket = SyntaxContext->popToken ();
1144
+ auto ElementType = SyntaxContext->popIf <TypeSyntax>().getValue ();
1145
+ auto LeftSquareBracket = SyntaxContext->popToken ();
1130
1146
Builder
1131
- .useRightSquareBracket (SyntaxContext-> popToken () )
1132
- .useElementType (SyntaxContext-> popIf <TypeSyntax>(). getValue () )
1133
- .useLeftSquareBracket (SyntaxContext-> popToken () );
1147
+ .useRightSquareBracket (RightSquareBracket )
1148
+ .useElementType (ElementType )
1149
+ .useLeftSquareBracket (LeftSquareBracket );
1134
1150
SyntaxNode.emplace (Builder.build ());
1135
1151
}
1136
1152
}
@@ -1212,9 +1228,11 @@ Parser::parseTypeImplicitlyUnwrappedOptional(TypeRepr *base) {
1212
1228
if (SyntaxContext->isEnabled ()) {
1213
1229
ImplicitlyUnwrappedOptionalTypeSyntaxBuilder Builder (
1214
1230
Context.getSyntaxArena ());
1231
+ auto ExclamationMark = SyntaxContext->popToken ();
1232
+ auto WrappedType = SyntaxContext->popIf <TypeSyntax>().getValue ();
1215
1233
Builder
1216
- .useExclamationMark (SyntaxContext-> popToken () )
1217
- .useWrappedType (SyntaxContext-> popIf <TypeSyntax>(). getValue () );
1234
+ .useExclamationMark (ExclamationMark )
1235
+ .useWrappedType (WrappedType );
1218
1236
SyntaxNode.emplace (Builder.build ());
1219
1237
}
1220
1238
return makeSyntaxResult (SyntaxNode, TyR);
0 commit comments