Skip to content

Commit 204b1ce

Browse files
authored
Merge pull request #935 from ahoppen/ahoppen/throw-error-instead-of-fallback
Remove the fallback value from `SourceKitServer.handleRequest`
2 parents 8457f84 + 6d2709d commit 204b1ce

File tree

1 file changed

+23
-32
lines changed

1 file changed

+23
-32
lines changed

Sources/SourceKitLSP/SourceKitServer.swift

Lines changed: 23 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -397,16 +397,15 @@ public actor SourceKitServer {
397397

398398
private func handleRequest<RequestType: TextDocumentRequest>(
399399
for request: Request<RequestType>,
400-
requestHandler: @escaping (RequestType, Workspace, ToolchainLanguageServer) async throws -> RequestType.Response,
401-
fallback: RequestType.Response
400+
requestHandler: @escaping (RequestType, Workspace, ToolchainLanguageServer) async throws -> RequestType.Response
402401
) async {
403402
await handleRequest(request) { request in
404403
let doc = request.textDocument.uri
405404
guard let workspace = await self.workspaceForDocument(uri: request.textDocument.uri) else {
406405
throw ResponseError.workspaceNotOpen(request.textDocument.uri)
407406
}
408407
guard let languageService = workspace.documentService[doc] else {
409-
return fallback
408+
throw ResponseError.unknown("No language service for '\(request.textDocument.uri)' found")
410409
}
411410
return try await requestHandler(request, workspace, languageService)
412411
}
@@ -757,55 +756,47 @@ extension SourceKitServer: MessageHandler {
757756
case let request as Request<TypeHierarchySubtypesRequest>:
758757
await self.handleRequest(request, handler: self.subtypes)
759758
case let request as Request<CompletionRequest>:
760-
await self.handleRequest(
761-
for: request,
762-
requestHandler: self.completion,
763-
fallback: CompletionList(isIncomplete: false, items: [])
764-
)
759+
await self.handleRequest(for: request, requestHandler: self.completion)
765760
case let request as Request<HoverRequest>:
766-
await self.handleRequest(for: request, requestHandler: self.hover, fallback: nil)
761+
await self.handleRequest(for: request, requestHandler: self.hover)
767762
case let request as Request<OpenInterfaceRequest>:
768-
await self.handleRequest(for: request, requestHandler: self.openInterface, fallback: nil)
763+
await self.handleRequest(for: request, requestHandler: self.openInterface)
769764
case let request as Request<DeclarationRequest>:
770-
await self.handleRequest(for: request, requestHandler: self.declaration, fallback: nil)
765+
await self.handleRequest(for: request, requestHandler: self.declaration)
771766
case let request as Request<DefinitionRequest>:
772-
await self.handleRequest(for: request, requestHandler: self.definition, fallback: .locations([]))
767+
await self.handleRequest(for: request, requestHandler: self.definition)
773768
case let request as Request<ReferencesRequest>:
774-
await self.handleRequest(for: request, requestHandler: self.references, fallback: [])
769+
await self.handleRequest(for: request, requestHandler: self.references)
775770
case let request as Request<ImplementationRequest>:
776-
await self.handleRequest(for: request, requestHandler: self.implementation, fallback: .locations([]))
771+
await self.handleRequest(for: request, requestHandler: self.implementation)
777772
case let request as Request<CallHierarchyPrepareRequest>:
778-
await self.handleRequest(for: request, requestHandler: self.prepareCallHierarchy, fallback: [])
773+
await self.handleRequest(for: request, requestHandler: self.prepareCallHierarchy)
779774
case let request as Request<TypeHierarchyPrepareRequest>:
780-
await self.handleRequest(for: request, requestHandler: self.prepareTypeHierarchy, fallback: [])
775+
await self.handleRequest(for: request, requestHandler: self.prepareTypeHierarchy)
781776
case let request as Request<SymbolInfoRequest>:
782-
await self.handleRequest(for: request, requestHandler: self.symbolInfo, fallback: [])
777+
await self.handleRequest(for: request, requestHandler: self.symbolInfo)
783778
case let request as Request<DocumentHighlightRequest>:
784-
await self.handleRequest(for: request, requestHandler: self.documentSymbolHighlight, fallback: nil)
779+
await self.handleRequest(for: request, requestHandler: self.documentSymbolHighlight)
785780
case let request as Request<FoldingRangeRequest>:
786-
await self.handleRequest(for: request, requestHandler: self.foldingRange, fallback: nil)
781+
await self.handleRequest(for: request, requestHandler: self.foldingRange)
787782
case let request as Request<DocumentSymbolRequest>:
788-
await self.handleRequest(for: request, requestHandler: self.documentSymbol, fallback: nil)
783+
await self.handleRequest(for: request, requestHandler: self.documentSymbol)
789784
case let request as Request<DocumentColorRequest>:
790-
await self.handleRequest(for: request, requestHandler: self.documentColor, fallback: [])
785+
await self.handleRequest(for: request, requestHandler: self.documentColor)
791786
case let request as Request<DocumentSemanticTokensRequest>:
792-
await self.handleRequest(for: request, requestHandler: self.documentSemanticTokens, fallback: nil)
787+
await self.handleRequest(for: request, requestHandler: self.documentSemanticTokens)
793788
case let request as Request<DocumentSemanticTokensDeltaRequest>:
794-
await self.handleRequest(for: request, requestHandler: self.documentSemanticTokensDelta, fallback: nil)
789+
await self.handleRequest(for: request, requestHandler: self.documentSemanticTokensDelta)
795790
case let request as Request<DocumentSemanticTokensRangeRequest>:
796-
await self.handleRequest(for: request, requestHandler: self.documentSemanticTokensRange, fallback: nil)
791+
await self.handleRequest(for: request, requestHandler: self.documentSemanticTokensRange)
797792
case let request as Request<ColorPresentationRequest>:
798-
await self.handleRequest(for: request, requestHandler: self.colorPresentation, fallback: [])
793+
await self.handleRequest(for: request, requestHandler: self.colorPresentation)
799794
case let request as Request<CodeActionRequest>:
800-
await self.handleRequest(for: request, requestHandler: self.codeAction, fallback: nil)
795+
await self.handleRequest(for: request, requestHandler: self.codeAction)
801796
case let request as Request<InlayHintRequest>:
802-
await self.handleRequest(for: request, requestHandler: self.inlayHint, fallback: [])
797+
await self.handleRequest(for: request, requestHandler: self.inlayHint)
803798
case let request as Request<DocumentDiagnosticsRequest>:
804-
await self.handleRequest(
805-
for: request,
806-
requestHandler: self.documentDiagnostic,
807-
fallback: .full(.init(items: []))
808-
)
799+
await self.handleRequest(for: request, requestHandler: self.documentDiagnostic)
809800
// IMPORTANT: When adding a new entry to this switch, also add it to the `TaskMetadata` initializer.
810801
default:
811802
reply(.failure(ResponseError.methodNotFound(R.method)))

0 commit comments

Comments
 (0)