Skip to content

Commit 82bf378

Browse files
committed
Add __shared to SyntaxArena paramenter for initializers
To avoid unnecessary ref-counting traffic.
1 parent cf75c71 commit 82bf378

File tree

3 files changed

+260
-260
lines changed

3 files changed

+260
-260
lines changed

Sources/SwiftSyntax/RawSyntaxNodeProtocol.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ public struct RawTokenSyntax: RawSyntaxNodeProtocol {
112112
kind: RawTokenKind,
113113
wholeText: SyntaxText,
114114
textRange: Range<SyntaxText.Index>,
115-
arena: SyntaxArena
115+
arena: __shared SyntaxArena
116116
) {
117117
assert(arena.contains(text: wholeText),
118118
"token text must be managed by the arena")
@@ -128,7 +128,7 @@ public struct RawTokenSyntax: RawSyntaxNodeProtocol {
128128
text: SyntaxText,
129129
leadingTriviaPieces: [RawTriviaPiece],
130130
trailingTriviaPieces: [RawTriviaPiece],
131-
arena: SyntaxArena
131+
arena: __shared SyntaxArena
132132
) {
133133
assert(arena.contains(text: text), "token text must be managed by the arena")
134134
let totalTriviaCount = leadingTriviaPieces.count + trailingTriviaPieces.count
@@ -153,7 +153,7 @@ public struct RawTokenSyntax: RawSyntaxNodeProtocol {
153153
}
154154

155155
/// Creates a missing `TokenSyntax` with the specified kind.
156-
public init(missing kind: RawTokenKind, arena: SyntaxArena) {
156+
public init(missing kind: RawTokenKind, arena: __shared SyntaxArena) {
157157
self.init(
158158
kind: kind, text: "", leadingTriviaPieces: [], trailingTriviaPieces: [],
159159
arena: arena)

Sources/SwiftSyntax/RawSyntaxNodes.swift.gyb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public struct Raw${node.name}: Raw${node.name if node.is_base() else node.base_t
5959
% end
6060
%
6161
% if node.is_syntax_collection():
62-
public init(elements: [Raw${node.collection_element_type}], arena: SyntaxArena) {
62+
public init(elements: [Raw${node.collection_element_type}], arena: __shared SyntaxArena) {
6363
let raw = RawSyntax.makeLayout(
6464
kind: .${node.swift_syntax_kind}, uninitializedCount: elements.count, arena: arena) { layout in
6565
guard var ptr = layout.baseAddress else { return }
@@ -85,7 +85,7 @@ public struct Raw${node.name}: Raw${node.name if node.is_base() else node.base_t
8585
% param_default = " = nil" if child.is_unexpected_nodes() else ""
8686
${param_label}${child.swift_name}: ${param_type}${param_default},
8787
% end
88-
arena: SyntaxArena
88+
arena: __shared SyntaxArena
8989
) {
9090
% if node.children:
9191
let raw = RawSyntax.makeLayout(

0 commit comments

Comments
 (0)