@@ -32,18 +32,16 @@ public enum SyntaxFactory {
3232 public static func makeToken( _ kind: TokenKind , presence: SourcePresence ,
3333 leadingTrivia: Trivia = [ ] ,
3434 trailingTrivia: Trivia = [ ] ) -> TokenSyntax {
35- let raw = RawSyntax . makeMaterializedToken ( kind: kind, leadingTrivia: leadingTrivia,
36- trailingTrivia: trailingTrivia, presence: presence, arena: . default)
37- let data = SyntaxData . forRoot ( raw)
38- return TokenSyntax ( data)
35+ TokenSyntax (
36+ kind,
37+ leadingTrivia: leadingTrivia,
38+ trailingTrivia: trailingTrivia,
39+ presence: presence)
3940 }
4041
4142 @available ( * , deprecated, message: " Use initializer on UnknownSyntax " )
4243 public static func makeUnknownSyntax( tokens: [ TokenSyntax ] ) -> UnknownSyntax {
43- let raw = RawSyntax . makeLayout ( kind: . unknown,
44- from: tokens. map { $0. raw } , arena: . default)
45- let data = SyntaxData . forRoot ( raw)
46- return UnknownSyntax ( data)
44+ UnknownSyntax ( tokens: tokens)
4745 }
4846
4947/// MARK: Syntax Node Creation APIs
@@ -78,37 +76,43 @@ public enum SyntaxFactory {
7876% end
7977% end
8078 ]
81- let raw = RawSyntax . makeLayout ( kind: SyntaxKind . ${ node. swift_syntax_kind} ,
82- from: layout, arena: . default)
83- let data = SyntaxData . forRoot ( raw)
84- return ${ node. name} ( data)
79+ return withExtendedLifetime ( SyntaxArena ( ) ) { arena in
80+ let raw = RawSyntax . makeLayout ( kind: SyntaxKind . ${ node. swift_syntax_kind} ,
81+ from: layout, arena: arena)
82+ let data = SyntaxData . forRoot ( raw)
83+ return ${ node. name} ( data)
84+ }
8585 }
8686% elif node. is_syntax_collection( ) :
8787 @available( * , deprecated, message: " Use initializer on ${node.name} " )
8888 public static func make${ node. syntax_kind} (
8989 _ elements: [ ${ node. collection_element_type} ] ) - > ${ node. name} {
90- let raw = RawSyntax . makeLayout ( kind: SyntaxKind . ${ node. swift_syntax_kind} ,
91- from: elements. map { $0. raw } , arena: . default)
92- let data = SyntaxData . forRoot ( raw)
93- return ${ node. name} ( data)
90+ return withExtendedLifetime ( SyntaxArena ( ) ) { arena in
91+ let raw = RawSyntax . makeLayout ( kind: SyntaxKind . ${ node. swift_syntax_kind} ,
92+ from: elements. map { $0. raw } , arena: arena)
93+ let data = SyntaxData . forRoot ( raw)
94+ return ${ node. name} ( data)
95+ }
9496 }
9597% end
9698
9799% if not node. is_base ( ) :
98100% default_presence = 'missing' if node. is_missing ( ) else 'present'
99101 @available( * , deprecated, message: " Use initializer on ${node.name} " )
100102 public static func makeBlank${ node. syntax_kind} ( presence: SourcePresence = . ${ default_presence} ) - > ${ node. name} {
101- let data = SyntaxData . forRoot ( RawSyntax . makeLayout ( kind: . ${ node. swift_syntax_kind} ,
102- from: [
103+ return withExtendedLifetime ( SyntaxArena ( ) ) { arena in
104+ let data = SyntaxData . forRoot ( RawSyntax . makeLayout ( kind: . ${ node. swift_syntax_kind} ,
105+ from: [
103106% for child in node. children:
104107% if child. is_optional:
105- nil ,
108+ nil ,
106109% else :
107- ${ make_missing_swift_child ( child) } ,
110+ ${ make_missing_swift_child ( child) } ,
108111% end
109112% end
110- ] , arena: . default) )
111- return ${ node. name} ( data)
113+ ] , arena: arena) )
114+ return ${ node. name} ( data)
115+ }
112116 }
113117% end
114118% end
0 commit comments