@@ -298,11 +298,7 @@ extension SourceKitServer {
298
298
299
299
// Determine the local edits and the USR to rename
300
300
let renameResult = try await languageService. rename ( request)
301
- var edits = renameResult. edits
302
- if edits. changes == nil {
303
- // Make sure `edits.changes` is non-nil so we can force-unwrap it below.
304
- edits. changes = [ : ]
305
- }
301
+ var changes = renameResult. edits. changes ?? [ : ]
306
302
307
303
if let usr = renameResult. usr, let oldName = renameResult. oldName, let index = workspace. index {
308
304
// If we have a USR + old name, perform an index lookup to find workspace-wide symbols to rename.
@@ -324,7 +320,7 @@ extension SourceKitServer {
324
320
await withTaskGroup ( of: ( DocumentURI, [ TextEdit] ) ? . self) { taskGroup in
325
321
for (url, renameLocations) in locationsByFile {
326
322
let uri = DocumentURI ( url)
327
- if edits . changes! [ uri] != nil {
323
+ if changes [ uri] != nil {
328
324
// We already have edits for this document provided by the language service, so we don't need to compute
329
325
// rename ranges for it.
330
326
continue
@@ -358,11 +354,13 @@ extension SourceKitServer {
358
354
}
359
355
}
360
356
for await case let ( uri, textEdits) ? in taskGroup where !textEdits. isEmpty {
361
- precondition ( edits . changes! [ uri] == nil , " We should create tasks for URIs that already have edits " )
362
- edits . changes! [ uri] = textEdits
357
+ precondition ( changes [ uri] == nil , " We should not create tasks for URIs that already have edits " )
358
+ changes [ uri] = textEdits
363
359
}
364
360
}
365
361
}
362
+ var edits = renameResult. edits
363
+ edits. changes = changes
366
364
return edits
367
365
}
368
366
}
0 commit comments