Skip to content

Commit 2852ce3

Browse files
authored
Merge pull request swiftlang#300 from benlangmuir/cancel-error-log
[logging] Avoid logging cancellation as warnings/errors
2 parents 4fcf071 + d82c52c commit 2852ce3

File tree

3 files changed

+16
-8
lines changed

3 files changed

+16
-8
lines changed

Sources/SourceKitD/SourceKitD.swift

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,13 +73,12 @@ extension SourceKitD {
7373

7474
let resp = SKDResponse(api.send_request_sync(req.dict), sourcekitd: self)
7575

76+
logResponse(resp)
77+
7678
guard let dict = resp.value else {
77-
log(resp.description, level: .error)
7879
throw resp.error!
7980
}
8081

81-
logAsync(level: .debug) { _ in dict.description }
82-
8382
return dict
8483
}
8584

@@ -98,16 +97,15 @@ extension SourceKitD {
9897

9998
let resp = SKDResponse(_resp, sourcekitd: self)
10099

100+
logResponse(resp)
101+
101102
guard let dict = resp.value else {
102-
log(resp.description, level: .error)
103103
queue.async {
104104
reply(.failure(resp.error!))
105105
}
106106
return
107107
}
108108

109-
logAsync(level: .debug) { _ in dict.description }
110-
111109
queue.async {
112110
reply(.success(dict))
113111
}
@@ -117,6 +115,16 @@ extension SourceKitD {
117115
}
118116
}
119117

118+
private func logResponse(_ response: SKDResponse) {
119+
if let value = response.value {
120+
logAsync(level: .debug) { _ in value.description }
121+
} else if case .requestCancelled = response.error! {
122+
log(response.description, level: .debug)
123+
} else {
124+
log(response.description, level: .error)
125+
}
126+
}
127+
120128
/// A sourcekitd notification handler in a class to allow it to be uniquely referenced.
121129
public protocol SKDNotificationHandler: AnyObject {
122130
func notification(_: SKDResponse) -> Void

Sources/SourceKitLSP/Swift/CursorInfo.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ struct CursorInfo {
4545
}
4646

4747
/// An error from a cursor info request.
48-
enum CursorInfoError: Error {
48+
enum CursorInfoError: Error, Equatable {
4949

5050
/// The given URL is not a known document.
5151
case unknownDocument(DocumentURI)

Sources/SourceKitLSP/Swift/SwiftLanguageServer.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,7 @@ extension SwiftLanguageServer {
414414
let position = req.params.position
415415
cursorInfo(uri, position..<position) { result in
416416
guard let cursorInfo: CursorInfo = result.success ?? nil else {
417-
if let error = result.failure {
417+
if let error = result.failure, error != .responseError(.cancelled) {
418418
log("cursor info failed \(uri):\(position): \(error)", level: .warning)
419419
}
420420
return req.reply(nil)

0 commit comments

Comments
 (0)