Skip to content

Commit 61b94da

Browse files
committed
Detach node before making present/missing in diagnostics generator
Changes only needs the node itself, detach before rewriting to avoid having to re-create all the parent nodes. Resolves rdar://111332992 (#1847).
1 parent 7085322 commit 61b94da

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

Sources/SwiftParserDiagnostics/DiagnosticExtensions.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ extension FixIt.MultiNodeChange {
7878
guard let node = node else {
7979
return FixIt.MultiNodeChange(primitiveChanges: [])
8080
}
81-
var changes = [FixIt.Change.replace(oldNode: Syntax(node), newNode: MissingMaker().rewrite(node))]
81+
var changes = [FixIt.Change.replace(oldNode: Syntax(node), newNode: MissingMaker().rewrite(node.detached))]
8282
if transferTrivia {
8383
changes += FixIt.MultiNodeChange.transferTriviaAtSides(from: [node]).primitiveChanges
8484
}
@@ -123,7 +123,7 @@ extension FixIt.MultiNodeChange {
123123
leadingTrivia: Trivia? = nil,
124124
trailingTrivia: Trivia? = nil
125125
) -> Self {
126-
var presentNode = MissingNodesBasicFormatter(viewMode: .fixedUp).rewrite(node)
126+
var presentNode = MissingNodesBasicFormatter(viewMode: .fixedUp).rewrite(node.detached)
127127
presentNode = PresentMaker().rewrite(presentNode)
128128

129129
if let leadingTrivia {

0 commit comments

Comments
 (0)