@@ -1082,24 +1082,13 @@ class Parser {
1082
1082
// / an error parsing.
1083
1083
bool parseVersionTuple (llvm::VersionTuple &Version, SourceRange &Range,
1084
1084
const Diagnostic &D);
1085
-
1086
1085
bool parseTypeAttributeList (ParamDecl::Specifier &Specifier,
1087
1086
SourceLoc &SpecifierLoc,
1088
- TypeAttributes &Attributes) {
1089
- if (Tok.isAny (tok::at_sign, tok::kw_inout) ||
1090
- (Tok.is (tok::identifier) &&
1091
- (Tok.getRawText ().equals (" __shared" ) ||
1092
- Tok.getRawText ().equals (" __owned" ))))
1093
- return parseTypeAttributeListPresent (Specifier, SpecifierLoc, Attributes);
1094
- return false ;
1095
- }
1096
- bool parseTypeAttributeListPresent (ParamDecl::Specifier &Specifier,
1097
- SourceLoc &SpecifierLoc,
1098
- TypeAttributes &Attributes);
1099
- bool parseTypeAttribute (TypeAttributes &Attributes, SourceLoc AtLoc,
1100
- bool justChecking = false );
1101
-
1102
-
1087
+ TypeAttributes &Attributes);
1088
+ ParserStatus parseTypeAttributeListSyntax (Optional<ParsedTokenSyntax> &specifier,
1089
+ Optional<ParsedAttributeListSyntax> &attrs);
1090
+ ParsedSyntaxResult<ParsedAttributeSyntax> parseTypeAttributeSyntax ();
1091
+
1103
1092
ParserResult<ImportDecl> parseDeclImport (ParseDeclOptions Flags,
1104
1093
DeclAttributes &Attributes);
1105
1094
ParserStatus parseInheritance (MutableArrayRef<TypeLoc> &Inherited,
@@ -1190,44 +1179,47 @@ class Parser {
1190
1179
// ===--------------------------------------------------------------------===//
1191
1180
// Type Parsing
1192
1181
1193
- using TypeASTResult = ParserResult<TypeRepr>;
1194
- using TypeResult = ParsedSyntaxResult<ParsedTypeSyntax>;
1182
+ ParserResult<TypeRepr> parseType ();
1183
+ ParserResult<TypeRepr> parseType (Diag<> MessageID,
1184
+ bool HandleCodeCompletion = true ,
1185
+ bool IsSILFuncDecl = false );
1186
+ ParserStatus parseGenericArguments (llvm::SmallVectorImpl<TypeRepr *> &ArgsAST,
1187
+ SourceLoc &LAngleLoc,
1188
+ SourceLoc &RAngleLoc);
1189
+ TypeRepr *applyAttributeToType (TypeRepr *Ty, const TypeAttributes &Attr,
1190
+ ParamDecl::Specifier Specifier,
1191
+ SourceLoc SpecifierLoc);
1192
+ ParserResult<TypeRepr> parseAnyTypeAST ();
1195
1193
1196
1194
ParsedSyntaxResult<ParsedLayoutConstraintSyntax>
1197
1195
parseLayoutConstraintSyntax ();
1198
1196
1199
- TypeResult parseTypeSyntax ();
1200
- TypeResult parseTypeSyntax (Diag<> MessageID, bool HandleCodeCompletion = true ,
1201
- bool IsSILFuncDecl = false );
1202
-
1203
- TypeASTResult parseType ();
1204
- TypeASTResult parseType (Diag<> MessageID, bool HandleCodeCompletion = true ,
1205
- bool IsSILFuncDecl = false );
1206
- ParserStatus
1207
- parseGenericArgumentsAST (llvm::SmallVectorImpl<TypeRepr *> &ArgsAST,
1208
- SourceLoc &LAngleLoc, SourceLoc &RAngleLoc);
1209
- TypeASTResult parseSILBoxType (GenericParamList *generics,
1210
- const TypeAttributes &attrs,
1211
- Optional<Scope> &GenericsScope);
1212
- TypeASTResult parseTypeSimpleOrCompositionAST (Diag<> MessageID,
1213
- bool HandleCodeCompletion);
1214
- TypeASTResult parseAnyTypeAST ();
1197
+ ParsedSyntaxResult<ParsedTypeSyntax> parseTypeSyntax ();
1198
+ ParsedSyntaxResult<ParsedTypeSyntax>
1199
+ parseTypeSyntax (Diag<> MessageID, bool HandleCodeCompletion = true ,
1200
+ bool IsSILFuncDecl = false );
1215
1201
1216
1202
ParsedSyntaxResult<ParsedGenericArgumentClauseSyntax>
1217
1203
parseGenericArgumentClauseSyntax ();
1218
1204
1219
- TypeResult parseTypeSimple (Diag<> MessageID, bool HandleCodeCompletion);
1220
- TypeResult parseTypeSimpleOrComposition (Diag<> MessageID, bool HandleCodeCompletion);
1221
- TypeResult parseTypeIdentifier ();
1222
- TypeResult parseAnyType ();
1223
- TypeResult parseTypeTupleBody ();
1224
- TypeResult parseTypeCollection ();
1225
- TypeResult parseMetatypeType (ParsedTypeSyntax Base);
1226
- TypeResult parseOptionalType (ParsedTypeSyntax Base);
1227
- TypeResult parseImplicitlyUnwrappedOptionalType (ParsedTypeSyntax Base);
1228
-
1229
- TypeResult parseTypeArray (ParsedTypeSyntax Base, SourceLoc BaseLoc);
1230
- TypeResult parseOldStyleProtocolComposition ();
1205
+ ParsedSyntaxResult<ParsedTypeSyntax>
1206
+ parseTypeSimple (Diag<> MessageID, bool HandleCodeCompletion);
1207
+ ParsedSyntaxResult<ParsedTypeSyntax>
1208
+ parseTypeSimpleOrComposition (Diag<> MessageID, bool HandleCodeCompletion);
1209
+ ParsedSyntaxResult<ParsedTypeSyntax> parseTypeIdentifier ();
1210
+ ParsedSyntaxResult<ParsedTypeSyntax> parseAnyType ();
1211
+ ParsedSyntaxResult<ParsedTypeSyntax> parseTypeTupleBody ();
1212
+ ParsedSyntaxResult<ParsedTypeSyntax> parseTypeCollection ();
1213
+ ParsedSyntaxResult<ParsedTypeSyntax> parseMetatypeType (ParsedTypeSyntax Base);
1214
+ ParsedSyntaxResult<ParsedTypeSyntax> parseOptionalType (ParsedTypeSyntax Base);
1215
+ ParsedSyntaxResult<ParsedTypeSyntax>
1216
+ parseImplicitlyUnwrappedOptionalType (ParsedTypeSyntax Base);
1217
+ ParsedSyntaxResult<ParsedTypeSyntax> parseSILBoxTypeSyntax (
1218
+ Optional<ParsedGenericParameterClauseListSyntax> genericParams);
1219
+
1220
+ ParsedSyntaxResult<ParsedTypeSyntax> parseTypeArray (ParsedTypeSyntax Base,
1221
+ SourceLoc BaseLoc);
1222
+ ParsedSyntaxResult<ParsedTypeSyntax> parseOldStyleProtocolComposition ();
1231
1223
1232
1224
bool isOptionalToken (const Token &T) const ;
1233
1225
ParsedTokenSyntax consumeOptionalTokenSyntax ();
@@ -1237,9 +1229,10 @@ class Parser {
1237
1229
ParsedTokenSyntax consumeImplicitlyUnwrappedOptionalTokenSyntax ();
1238
1230
SourceLoc consumeImplicitlyUnwrappedOptionalToken ();
1239
1231
1240
- TypeRepr *applyAttributeToType (TypeRepr *Ty, const TypeAttributes &Attr,
1241
- ParamDecl::Specifier Specifier,
1242
- SourceLoc SpecifierLoc);
1232
+ ParsedSyntaxResult<ParsedTypeSyntax>
1233
+ applyAttributeToTypeSyntax (ParsedSyntaxResult<ParsedTypeSyntax> &&ty,
1234
+ Optional<ParsedTokenSyntax> specifier,
1235
+ Optional<ParsedAttributeListSyntax> attrs);
1243
1236
1244
1237
// ===--------------------------------------------------------------------===//
1245
1238
// Pattern Parsing
0 commit comments