diff --git a/Sources/SwiftParser/Attributes.swift b/Sources/SwiftParser/Attributes.swift index 7a31e28a91c..ff3fd07596d 100644 --- a/Sources/SwiftParser/Attributes.swift +++ b/Sources/SwiftParser/Attributes.swift @@ -730,7 +730,7 @@ extension Parser { case (.availability, let handle)?: let label = self.eat(handle) let (unexpectedBeforeColon, colon) = self.expect(.colon) - let availability = self.parseAvailabilitySpecList() + let availability = self.parseAvailabilityArgumentSpecList() let (unexpectedBeforeSemi, semi) = self.expect(.semicolon) elements.append( .specializeAvailabilityArgument( diff --git a/Tests/SwiftParserTest/AttributeTests.swift b/Tests/SwiftParserTest/AttributeTests.swift index c514b029498..882839b06ce 100644 --- a/Tests/SwiftParserTest/AttributeTests.swift +++ b/Tests/SwiftParserTest/AttributeTests.swift @@ -143,6 +143,15 @@ final class AttributeTests: ParserTestCase { ) } + func testSpecializeWithAvailability() { + assertParse( + """ + @_specialize(exported: true, kind: full, availability: iOS, introduced: 15.4; where T == Swift.Int) + public func specializeWithAvailability(_ t: T) { } + """ + ) + } + func testObjCAttribute() { assertParse( """