Revert "Use fallback build settings if build system doesn’t provide build settings within a timeout"

This reverts commit 78217ec6a6.
This commit is contained in:
Alex Hoppen
2024-09-27 12:32:47 -07:00
parent 9b4a9b04bc
commit 794d4936fe
9 changed files with 19 additions and 157 deletions

View File

@@ -137,7 +137,6 @@ private extension BuildSystemKind {
private static func createBuiltInBuildSystemAdapter(
projectRoot: AbsolutePath,
messagesToSourceKitLSPHandler: any MessageHandler,
buildSystemTestHooks: BuildSystemTestHooks,
_ createBuildSystem: @Sendable (_ connectionToSourceKitLSP: any Connection) async throws -> BuiltInBuildSystem?
) async -> BuildSystemAdapter? {
let connectionToSourceKitLSP = LocalConnection(receiverName: "BuildSystemManager")
@@ -153,8 +152,7 @@ private extension BuildSystemKind {
logger.log("Created \(type(of: buildSystem), privacy: .public) at \(projectRoot.pathString)")
let buildSystemAdapter = BuiltInBuildSystemAdapter(
underlyingBuildSystem: buildSystem,
connectionToSourceKitLSP: connectionToSourceKitLSP,
buildSystemTestHooks: buildSystemTestHooks
connectionToSourceKitLSP: connectionToSourceKitLSP
)
let connectionToBuildSystem = LocalConnection(receiverName: "Build system")
connectionToBuildSystem.start(handler: buildSystemAdapter)
@@ -186,8 +184,7 @@ private extension BuildSystemKind {
case .compilationDatabase(projectRoot: let projectRoot):
return await Self.createBuiltInBuildSystemAdapter(
projectRoot: projectRoot,
messagesToSourceKitLSPHandler: messagesToSourceKitLSPHandler,
buildSystemTestHooks: testHooks
messagesToSourceKitLSPHandler: messagesToSourceKitLSPHandler
) { connectionToSourceKitLSP in
CompilationDatabaseBuildSystem(
projectRoot: projectRoot,
@@ -200,8 +197,7 @@ private extension BuildSystemKind {
case .swiftPM(projectRoot: let projectRoot):
return await Self.createBuiltInBuildSystemAdapter(
projectRoot: projectRoot,
messagesToSourceKitLSPHandler: messagesToSourceKitLSPHandler,
buildSystemTestHooks: testHooks
messagesToSourceKitLSPHandler: messagesToSourceKitLSPHandler
) { connectionToSourceKitLSP in
try await SwiftPMBuildSystem(
projectRoot: projectRoot,
@@ -214,8 +210,7 @@ private extension BuildSystemKind {
case .testBuildSystem(projectRoot: let projectRoot):
return await Self.createBuiltInBuildSystemAdapter(
projectRoot: projectRoot,
messagesToSourceKitLSPHandler: messagesToSourceKitLSPHandler,
buildSystemTestHooks: testHooks
messagesToSourceKitLSPHandler: messagesToSourceKitLSPHandler
) { connectionToSourceKitLSP in
TestBuildSystem(projectRoot: projectRoot, connectionToSourceKitLSP: connectionToSourceKitLSP)
}
@@ -404,8 +399,7 @@ package actor BuildSystemManager: QueueBasedMessageHandler {
)
let adapter = BuiltInBuildSystemAdapter(
underlyingBuildSystem: legacyBuildServer,
connectionToSourceKitLSP: legacyBuildServer.connectionToSourceKitLSP,
buildSystemTestHooks: buildSystemTestHooks
connectionToSourceKitLSP: legacyBuildServer.connectionToSourceKitLSP
)
let connectionToBuildSystem = LocalConnection(receiverName: "Legacy BSP server")
connectionToBuildSystem.start(handler: adapter)
@@ -711,17 +705,14 @@ package actor BuildSystemManager: QueueBasedMessageHandler {
in target: BuildTargetIdentifier?,
language: Language
) async -> FileBuildSettings? {
if let target {
let buildSettingsFromBuildSystem = await orLog("Getting build settings") {
try await withTimeout(options.buildSettingsTimeoutOrDefault) {
try await self.buildSettingsFromBuildSystem(for: document, in: target, language: language)
} resultReceivedAfterTimeout: {
await self.delegate?.fileBuildSettingsChanged([document])
}
}
if let buildSettingsFromBuildSystem {
return buildSettingsFromBuildSystem
do {
if let target,
let buildSettings = try await buildSettingsFromBuildSystem(for: document, in: target, language: language)
{
return buildSettings
}
} catch {
logger.error("Getting build settings failed: \(error.forLogging)")
}
guard
@@ -755,15 +746,8 @@ package actor BuildSystemManager: QueueBasedMessageHandler {
basedOn document: DocumentURI
) async -> (mainFile: DocumentURI, settings: FileBuildSettings)? {
let mainFile = await self.mainFile(for: document, language: language)
let settings = await orLog("Getting build settings") {
let target = try await withTimeout(options.buildSettingsTimeoutOrDefault) {
await self.canonicalTarget(for: mainFile)
} resultReceivedAfterTimeout: {
await self.delegate?.fileBuildSettingsChanged([document])
}
return await self.buildSettings(for: mainFile, in: target, language: language)
}
guard let settings else {
let target = await canonicalTarget(for: mainFile)
guard let settings = await buildSettings(for: mainFile, in: target, language: language) else {
return nil
}
return (mainFile, settings)