@@ -177,7 +177,7 @@ extension Parser {
177177 parseArguments: ( inout Parser ) -> RawAttributeSyntax . Arguments
178178 ) -> RawAttributeListSyntax . Element {
179179 let ( unexpectedBeforeAtSign, atSign) = self . expect ( . atSign)
180- let attributeName = self . parseType ( )
180+ let attributeName = self . parseAttributeName ( )
181181 let shouldParseArgument : Bool
182182 switch argumentMode {
183183 case . required:
@@ -358,21 +358,40 @@ extension Parser {
358358 }
359359}
360360
361- extension Parser {
362- mutating func parseMacroRoleArguments( ) -> [ RawLabeledExprSyntax ] {
363- let ( unexpectedBeforeRole, role) = self . expect ( . identifier, TokenSpec ( . extension, remapping: . identifier) , default: . identifier)
364- let roleTrailingComma = self . consume ( if: . comma)
365- let roleElement = RawLabeledExprSyntax (
361+ extension RawLabeledExprSyntax {
362+ fileprivate init (
363+ _ unexpectedBeforeIdentifier: RawUnexpectedNodesSyntax ? = nil ,
364+ identifier: RawTokenSyntax ,
365+ _ unexpectedBetweenIdentifierAndTrailingComma: RawUnexpectedNodesSyntax ? = nil ,
366+ trailingComma: RawTokenSyntax ? = nil ,
367+ arena: __shared SyntaxArena
368+ ) {
369+ self . init (
366370 label: nil ,
367371 colon: nil ,
368372 expression: RawExprSyntax (
369373 RawDeclReferenceExprSyntax (
370- unexpectedBeforeRole ,
371- baseName: role ,
374+ unexpectedBeforeIdentifier ,
375+ baseName: identifier ,
372376 argumentNames: nil ,
373- arena: self . arena
377+ arena: arena
374378 )
375379 ) ,
380+ unexpectedBetweenIdentifierAndTrailingComma,
381+ trailingComma: trailingComma,
382+ arena: arena
383+ )
384+ }
385+ }
386+
387+ extension Parser {
388+ mutating func parseMacroRoleArguments( ) -> [ RawLabeledExprSyntax ] {
389+ let ( unexpectedBeforeRole, role) = self . expect ( . identifier, TokenSpec ( . extension, remapping: . identifier) , default: . identifier)
390+ let roleTrailingComma = self . consume ( if: . comma)
391+
392+ let roleElement = RawLabeledExprSyntax (
393+ unexpectedBeforeRole,
394+ identifier: role,
376395 trailingComma: roleTrailingComma,
377396 arena: self . arena
378397 )
@@ -848,6 +867,23 @@ extension Parser {
848867 }
849868}
850869
870+ extension Parser {
871+ mutating func parseIsolatedAttributeArguments( ) -> RawLabeledExprListSyntax {
872+ let ( unexpectedBeforeIsolationKind, isolationKind) =
873+ self . expectIdentifier ( allowKeywordsAsIdentifier: true )
874+ let isolationKindElement = RawLabeledExprSyntax (
875+ unexpectedBeforeIsolationKind,
876+ identifier: isolationKind,
877+ arena: self . arena
878+ )
879+
880+ return RawLabeledExprListSyntax (
881+ elements: [ isolationKindElement] ,
882+ arena: self . arena
883+ )
884+ }
885+ }
886+
851887extension Parser {
852888 mutating func parseBackDeployedAttributeArguments( ) -> RawBackDeployedAttributeArgumentsSyntax {
853889 let ( unexpectedBeforeLabel, label) = self . expect ( . keyword( . before) )
0 commit comments