@@ -6245,6 +6245,74 @@ extension AttributeSyntax {
62456245 }
62466246}
62476247
6248+ public struct AvailabilityEntrySyntaxBuilder {
6249+ private var layout =
6250+ Array < RawSyntax ? > ( repeating: nil , count: 4 )
6251+
6252+ internal init ( ) { }
6253+
6254+ public mutating func useLabel( _ node: TokenSyntax ) {
6255+ let idx = AvailabilityEntrySyntax . Cursor. label. rawValue
6256+ layout [ idx] = node. raw
6257+ }
6258+
6259+ public mutating func useColon( _ node: TokenSyntax ) {
6260+ let idx = AvailabilityEntrySyntax . Cursor. colon. rawValue
6261+ layout [ idx] = node. raw
6262+ }
6263+
6264+ public mutating func addAvailability( _ elt: AvailabilityArgumentSyntax ) {
6265+ let idx = AvailabilityEntrySyntax . Cursor. availabilityList. rawValue
6266+ if let list = layout [ idx] {
6267+ layout [ idx] = list. appending ( elt. raw)
6268+ } else {
6269+ layout [ idx] = RawSyntax . create ( kind: SyntaxKind . availabilitySpecList,
6270+ layout: [ elt. raw] , length: elt. raw. totalLength,
6271+ presence: SourcePresence . present)
6272+ }
6273+ }
6274+
6275+ public mutating func useSemicolon( _ node: TokenSyntax ) {
6276+ let idx = AvailabilityEntrySyntax . Cursor. semicolon. rawValue
6277+ layout [ idx] = node. raw
6278+ }
6279+
6280+ internal mutating func buildData( ) -> SyntaxData {
6281+ if ( layout [ 0 ] == nil ) {
6282+ layout [ 0 ] = RawSyntax . missingToken ( TokenKind . identifier ( " " ) )
6283+ }
6284+ if ( layout [ 1 ] == nil ) {
6285+ layout [ 1 ] = RawSyntax . missingToken ( TokenKind . colon)
6286+ }
6287+ if ( layout [ 2 ] == nil ) {
6288+ layout [ 2 ] = RawSyntax . missing ( SyntaxKind . availabilitySpecList)
6289+ }
6290+ if ( layout [ 3 ] == nil ) {
6291+ layout [ 3 ] = RawSyntax . missingToken ( TokenKind . semicolon)
6292+ }
6293+
6294+ return . forRoot( RawSyntax . createAndCalcLength ( kind: . availabilityEntry,
6295+ layout: layout, presence: . present) )
6296+ }
6297+ }
6298+
6299+ extension AvailabilityEntrySyntax {
6300+ /// Creates a `AvailabilityEntrySyntax` using the provided build function.
6301+ /// - Parameter:
6302+ /// - build: A closure that will be invoked in order to initialize
6303+ /// the fields of the syntax node.
6304+ /// This closure is passed a `AvailabilityEntrySyntaxBuilder` which you can use to
6305+ /// incrementally build the structure of the node.
6306+ /// - Returns: A `AvailabilityEntrySyntax` with all the fields populated in the builder
6307+ /// closure.
6308+ public init ( _ build: ( inout AvailabilityEntrySyntaxBuilder ) -> Void ) {
6309+ var builder = AvailabilityEntrySyntaxBuilder ( )
6310+ build ( & builder)
6311+ let data = builder. buildData ( )
6312+ self . init ( data)
6313+ }
6314+ }
6315+
62486316public struct LabeledSpecializeEntrySyntaxBuilder {
62496317 private var layout =
62506318 Array < RawSyntax ? > ( repeating: nil , count: 4 )
0 commit comments