@@ -157,8 +157,8 @@ Parser::parseLayoutConstraintSyntax() {
157
157
// / type-simple '!'
158
158
// / type-collection
159
159
// / type-array
160
- Parser::TypeResult Parser::parseTypeSimple (Diag<> MessageID,
161
- bool HandleCodeCompletion) {
160
+ ParsedSyntaxResult<ParsedTypeSyntax>
161
+ Parser::parseTypeSimple (Diag<> MessageID, bool HandleCodeCompletion) {
162
162
if (Tok.is (tok::kw_inout) ||
163
163
(Tok.is (tok::identifier) && (Tok.getRawText ().equals (" __shared" ) ||
164
164
Tok.getRawText ().equals (" __owned" )))) {
@@ -170,7 +170,7 @@ Parser::TypeResult Parser::parseTypeSimple(Diag<> MessageID,
170
170
171
171
auto TypeLoc = leadingTriviaLoc ();
172
172
173
- TypeResult Result;
173
+ ParsedSyntaxResult<ParsedTypeSyntax> Result;
174
174
switch (Tok.getKind ()) {
175
175
case tok::kw_Self:
176
176
case tok::kw_Any:
@@ -251,14 +251,6 @@ Parser::TypeResult Parser::parseTypeSimple(Diag<> MessageID,
251
251
return Result;
252
252
}
253
253
254
- ParsedSyntaxResult<ParsedTypeSyntax> Parser::parseTypeSyntax () {
255
- return parseTypeSyntax (diag::expected_type);
256
- }
257
-
258
- Parser::TypeASTResult Parser::parseType () {
259
- return parseType (diag::expected_type);
260
- }
261
-
262
254
ParsedSyntaxResult<ParsedTypeSyntax> Parser::parseSILBoxTypeSyntax (
263
255
Optional<ParsedGenericParameterClauseListSyntax> generics) {
264
256
ParsedSILBoxTypeSyntaxBuilder builder (*SyntaxContext);
@@ -331,9 +323,9 @@ ParsedSyntaxResult<ParsedTypeSyntax> Parser::parseSILBoxTypeSyntax(
331
323
// /
332
324
// / sil-generic-function-type:
333
325
// / generic-parameter-clause-list type-function
334
- Parser::TypeResult Parser::parseTypeSyntax (Diag<> MessageID,
335
- bool HandleCodeCompletion,
336
- bool IsSILFuncDecl) {
326
+ ParsedSyntaxResult<ParsedTypeSyntax>
327
+ Parser::parseTypeSyntax (Diag<> MessageID, bool HandleCodeCompletion,
328
+ bool IsSILFuncDecl) {
337
329
ParserStatus status;
338
330
339
331
// Parse attributes.
@@ -472,6 +464,10 @@ Parser::TypeResult Parser::parseTypeSyntax(Diag<> MessageID,
472
464
std::move (specifier), std::move (attrs));
473
465
}
474
466
467
+ ParsedSyntaxResult<ParsedTypeSyntax> Parser::parseTypeSyntax () {
468
+ return parseTypeSyntax (diag::expected_type);
469
+ }
470
+
475
471
ParserResult<TypeRepr> Parser::parseType (Diag<> MessageID,
476
472
bool HandleCodeCompletion,
477
473
bool IsSILFuncDecl) {
@@ -489,7 +485,12 @@ ParserResult<TypeRepr> Parser::parseType(Diag<> MessageID,
489
485
return makeParserResult (status, tyR);
490
486
}
491
487
492
- Parser::TypeASTResult Parser::parseDeclResultType (Diag<> MessageID) {
488
+ ParserResult<TypeRepr> Parser::parseType () {
489
+ return parseType (diag::expected_type);
490
+ }
491
+
492
+
493
+ ParserResult<TypeRepr> Parser::parseDeclResultType (Diag<> MessageID) {
493
494
if (Tok.is (tok::code_complete)) {
494
495
if (CodeCompletion)
495
496
CodeCompletion->completeTypeDeclResultBeginning ();
@@ -575,9 +576,9 @@ Parser::parseGenericArgumentClauseSyntax() {
575
576
return makeParsedResult (builder.build (), status);
576
577
}
577
578
578
- ParserStatus
579
- Parser::parseGenericArgumentsAST (SmallVectorImpl<TypeRepr *> &ArgsAST ,
580
- SourceLoc &LAngleLoc, SourceLoc &RAngleLoc) {
579
+ ParserStatus Parser::parseGenericArguments (SmallVectorImpl<TypeRepr *> &ArgsAST,
580
+ SourceLoc &LAngleLoc ,
581
+ SourceLoc &RAngleLoc) {
581
582
auto StartLoc = leadingTriviaLoc ();
582
583
auto ParsedClauseResult = parseGenericArgumentClauseSyntax ();
583
584
if (ParsedClauseResult.isNull ())
@@ -600,7 +601,7 @@ Parser::parseGenericArgumentsAST(SmallVectorImpl<TypeRepr *> &ArgsAST,
600
601
// / type-identifier:
601
602
// / identifier generic-args? ('.' identifier generic-args?)*
602
603
// /
603
- Parser::TypeResult Parser::parseTypeIdentifier () {
604
+ ParsedSyntaxResult<ParsedTypeSyntax> Parser::parseTypeIdentifier () {
604
605
if (Tok.isNot (tok::identifier) && Tok.isNot (tok::kw_Self)) {
605
606
// is this the 'Any' type
606
607
if (Tok.is (tok::kw_Any))
@@ -741,7 +742,7 @@ Parser::TypeResult Parser::parseTypeIdentifier() {
741
742
// / type-composition:
742
743
// / 'some'? type-simple
743
744
// / type-composition '&' type-simple
744
- Parser::TypeResult
745
+ ParsedSyntaxResult<ParsedTypeSyntax>
745
746
Parser::parseTypeSimpleOrComposition (Diag<> MessageID,
746
747
bool HandleCodeCompletion) {
747
748
// Check for the opaque modifier.
@@ -829,15 +830,15 @@ Parser::parseTypeSimpleOrComposition(Diag<> MessageID,
829
830
ApplySome (std::move (Composition), std::move (FirstSome)), Status);
830
831
}
831
832
832
- Parser::TypeASTResult Parser::parseAnyTypeAST () {
833
+ ParserResult<TypeRepr> Parser::parseAnyTypeAST () {
833
834
auto AnyLoc = leadingTriviaLoc ();
834
835
auto ParsedAny = parseAnyType ().get ();
835
836
SyntaxContext->addSyntax (std::move (ParsedAny));
836
837
auto Any = SyntaxContext->topNode <SimpleTypeIdentifierSyntax>();
837
838
return makeParserResult (Generator.generate (Any, AnyLoc));
838
839
}
839
840
840
- Parser::TypeResult Parser::parseAnyType () {
841
+ ParsedSyntaxResult<ParsedTypeSyntax> Parser::parseAnyType () {
841
842
auto Any = consumeTokenSyntax (tok::kw_Any);
842
843
auto Type = ParsedSyntaxRecorder::makeSimpleTypeIdentifier (
843
844
std::move (Any), llvm::None, *SyntaxContext);
@@ -852,7 +853,8 @@ Parser::TypeResult Parser::parseAnyType() {
852
853
// / type-composition-list-deprecated:
853
854
// / type-identifier
854
855
// / type-composition-list-deprecated ',' type-identifier
855
- Parser::TypeResult Parser::parseOldStyleProtocolComposition () {
856
+ ParsedSyntaxResult<ParsedTypeSyntax>
857
+ Parser::parseOldStyleProtocolComposition () {
856
858
// Defer all nodes so that we can de-structure the composed types in case we
857
859
// need to emit a diagnostic (below).
858
860
DeferringContextRAII Deferring (*SyntaxContext);
@@ -968,7 +970,7 @@ Parser::TypeResult Parser::parseOldStyleProtocolComposition() {
968
970
// / type-tuple-element:
969
971
// / identifier? identifier ':' type
970
972
// / type
971
- Parser::TypeResult Parser::parseTypeTupleBody () {
973
+ ParsedSyntaxResult<ParsedTypeSyntax> Parser::parseTypeTupleBody () {
972
974
// Force the context to create deferred nodes, as we might need to
973
975
// de-structure the tuple type to create a function type.
974
976
DeferringContextRAII Deferring (*SyntaxContext);
@@ -1227,8 +1229,8 @@ Parser::TypeResult Parser::parseTypeTupleBody() {
1227
1229
// / type-array '[' ']'
1228
1230
// / type-array '[' expr ']'
1229
1231
// /
1230
- Parser::TypeResult Parser::parseTypeArray ( ParsedTypeSyntax Base,
1231
- SourceLoc BaseLoc) {
1232
+ ParsedSyntaxResult< ParsedTypeSyntax>
1233
+ Parser::parseTypeArray (ParsedTypeSyntax Base, SourceLoc BaseLoc) {
1232
1234
assert (Tok.isFollowingLSquare ());
1233
1235
auto LSquareLoc = Tok.getLoc ();
1234
1236
ignoreToken (tok::l_square);
@@ -1265,7 +1267,7 @@ Parser::TypeResult Parser::parseTypeArray(ParsedTypeSyntax Base,
1265
1267
// / type-simple:
1266
1268
// / '[' type ']'
1267
1269
// / '[' type ':' type ']'
1268
- Parser::TypeResult Parser::parseTypeCollection () {
1270
+ ParsedSyntaxResult<ParsedTypeSyntax> Parser::parseTypeCollection () {
1269
1271
ParserStatus Status;
1270
1272
assert (Tok.is (tok::l_square));
1271
1273
Parser::StructureMarkerRAII parsingCollection (*this , Tok);
@@ -1322,7 +1324,8 @@ Parser::TypeResult Parser::parseTypeCollection() {
1322
1324
*SyntaxContext));
1323
1325
}
1324
1326
1325
- Parser::TypeResult Parser::parseMetatypeType (ParsedTypeSyntax Base) {
1327
+ ParsedSyntaxResult<ParsedTypeSyntax>
1328
+ Parser::parseMetatypeType (ParsedTypeSyntax Base) {
1326
1329
auto Period = consumeTokenSyntax (); // tok::period or tok::period_prefix
1327
1330
auto Keyword = consumeTokenSyntax (tok::identifier); // "Type" or "Protocol"
1328
1331
auto MetatypeType = ParsedSyntaxRecorder::makeMetatypeType (
@@ -1381,14 +1384,15 @@ SourceLoc Parser::consumeImplicitlyUnwrappedOptionalToken() {
1381
1384
return consumeStartingCharacterOfCurrentToken (tok::exclaim_postfix);
1382
1385
}
1383
1386
1384
- Parser::TypeResult Parser::parseOptionalType (ParsedTypeSyntax Base) {
1387
+ ParsedSyntaxResult<ParsedTypeSyntax>
1388
+ Parser::parseOptionalType (ParsedTypeSyntax Base) {
1385
1389
auto Question = consumeOptionalTokenSyntax ();
1386
1390
auto Optional = ParsedSyntaxRecorder::makeOptionalType (
1387
1391
std::move (Base), std::move (Question), *SyntaxContext);
1388
1392
return makeParsedResult (std::move (Optional));
1389
1393
}
1390
1394
1391
- Parser::TypeResult
1395
+ ParsedSyntaxResult<ParsedTypeSyntax>
1392
1396
Parser::parseImplicitlyUnwrappedOptionalType (ParsedTypeSyntax Base) {
1393
1397
auto Exclamation = consumeImplicitlyUnwrappedOptionalTokenSyntax ();
1394
1398
auto Unwrapped = ParsedSyntaxRecorder::makeImplicitlyUnwrappedOptionalType (
0 commit comments