Skip to content

Commit 452b851

Browse files
authored
Basics: clean up DiagnosticsEngine in Observability (#6333)
Since uses of `DiagnosticsEngine` are deprecated in SwiftPM, with swiftlang/swift-driver#1317 we can remove any traces of it from `Basics/Observability.swift` to clean that up. Removed unused deprecated function that returned an instance of `DiagnosticsEngine`. Also broke up `import TSCBasic` into separate type imports to make clear what dependencies on TSC are there remaining. `TSCBasic.Diagnostic` still remains, but I think long-term we can move that to Swift Driver codebase to reduce dependencies on TSC.
1 parent 6035562 commit 452b851

File tree

4 files changed

+11
-17
lines changed

4 files changed

+11
-17
lines changed

Sources/Basics/Observability.swift

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,13 @@
1212

1313
import Dispatch
1414
import Foundation
15-
import TSCBasic
1615

16+
import class TSCBasic.UnknownLocation
1717
import enum TSCUtility.Diagnostics
18+
import protocol TSCBasic.DiagnosticData
19+
import protocol TSCBasic.DiagnosticLocation
1820
import protocol TSCUtility.DiagnosticDataConvertible
21+
import struct TSCBasic.Diagnostic
1922

2023
// this could become a struct when we remove the "errorsReported" pattern
2124

@@ -527,14 +530,13 @@ extension ObservabilityMetadata {
527530

528531
// MARK: - Compatibility with TSC Diagnostics APIs
529532

530-
@available(*, deprecated, message: "temporary for transition DiagnosticsEngine -> DiagnosticsEmitter")
531533
extension ObservabilityScope {
532-
public func makeDiagnosticsEngine() -> DiagnosticsEngine {
533-
return .init(handlers: [{ Diagnostic($0).map{ self.diagnosticsHandler.handleDiagnostic(scope: self, diagnostic: $0) } }])
534+
public func makeDiagnosticsHandler() -> (TSCBasic.Diagnostic) -> Void {
535+
{ Diagnostic($0).map { self.diagnosticsHandler.handleDiagnostic(scope: self, diagnostic: $0) } }
534536
}
535537
}
536538

537-
@available(*, deprecated, message: "temporary for transition DiagnosticsEngine -> DiagnosticsEmitter")
539+
@available(*, deprecated, message: "temporary for transition TSCBasic.Diagnostic -> SwiftDriver.Diagnostic")
538540
extension Diagnostic {
539541
init?(_ diagnostic: TSCBasic.Diagnostic) {
540542
var metadata = ObservabilityMetadata()
@@ -558,7 +560,7 @@ extension Diagnostic {
558560
}
559561
}
560562

561-
@available(*, deprecated, message: "temporary for transition DiagnosticsEngine -> DiagnosticsEmitter")
563+
@available(*, deprecated, message: "temporary for transition TSCBasic.Diagnostic -> SwiftDriver.Diagnostic")
562564
extension ObservabilityMetadata {
563565
public var legacyDiagnosticLocation: DiagnosticLocationWrapper? {
564566
get {
@@ -586,7 +588,7 @@ extension ObservabilityMetadata {
586588
}
587589
}
588590

589-
@available(*, deprecated, message: "temporary for transition DiagnosticsEngine -> DiagnosticsEmitter")
591+
@available(*, deprecated, message: "temporary for transition TSCBasic.Diagnostic -> SwiftDriver.Diagnostic")
590592
extension ObservabilityMetadata {
591593
var legacyDiagnosticData: DiagnosticDataWrapper? {
592594
get {

Sources/Build/BuildOperation.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ public final class BuildOperation: PackageStructureDelegate, SPMBuildCore.BuildS
197197

198198
let consumeDiagnostics: DiagnosticsEngine = DiagnosticsEngine(handlers: [])
199199
var driver = try Driver(args: commandLine,
200-
diagnosticsEngine: consumeDiagnostics,
200+
diagnosticsOutput: .engine(consumeDiagnostics),
201201
fileSystem: localFileSystem,
202202
executor: executor)
203203
guard !consumeDiagnostics.hasErrors else {

Sources/Build/LLBuildManifestBuilder.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ extension LLBuildManifestBuilder {
262262
)
263263
var driver = try Driver(
264264
args: commandLine,
265-
diagnosticsEngine: self.observabilityScope.makeDiagnosticsEngine(),
265+
diagnosticsOutput: .handler(self.observabilityScope.makeDiagnosticsHandler()),
266266
fileSystem: self.fileSystem,
267267
executor: executor
268268
)

Sources/Workspace/Workspace.swift

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3525,14 +3525,6 @@ fileprivate extension PackageDependency {
35253525
}
35263526
}
35273527

3528-
fileprivate extension DiagnosticsEngine {
3529-
func append(contentsOf other: DiagnosticsEngine) {
3530-
for diagnostic in other.diagnostics {
3531-
self.emit(diagnostic.message, location: diagnostic.location)
3532-
}
3533-
}
3534-
}
3535-
35363528
internal extension PackageReference {
35373529
func makeRepositorySpecifier() throws -> RepositorySpecifier {
35383530
switch self.kind {

0 commit comments

Comments
 (0)