@@ -30,19 +30,9 @@ import protocol TSCBasic.OutputByteStream
3030import func TSCBasic. withTemporaryFile
3131
3232import enum TSCUtility. Diagnostics
33- import class TSCUtility. JSONMessageStreamingParser
34- import protocol TSCUtility. JSONMessageStreamingParserDelegate
35- import struct TSCBasic. RegEx
3633
3734import var TSCBasic. stdoutStream
3835
39- import class Build. SwiftCompilerOutputParser
40- import protocol Build. SwiftCompilerOutputParserDelegate
41- import struct Build. SwiftCompilerMessage
42-
43- // TODO bp
44- import class SWBCore. SwiftCommandOutputParser
45-
4636import Foundation
4737import SWBBuildService
4838import SwiftBuild
@@ -294,6 +284,7 @@ final class SwiftBuildSystemMessageHandler {
294284 }
295285
296286 private func emitInfoAsDiagnostic( info: SwiftBuildMessage . DiagnosticInfo ) {
287+ // Assure that we haven't already emitted this diagnostic.
297288 let fixItsDescription = if info. fixIts. hasContent {
298289 " : " + info. fixIts. map { String ( describing: $0) } . joined ( separator: " , " )
299290 } else {
@@ -322,10 +313,14 @@ final class SwiftBuildSystemMessageHandler {
322313 guard !self . tasksEmitted. contains ( info. taskSignature) else {
323314 return
324315 }
316+ // Assure we have a data buffer to decode.
325317 guard let buffer = buildState. dataBuffer ( for: info) else {
326318 return
327319 }
328320
321+ // Fetch the task signature for a SwiftBuildMessage.DiagnosticInfo,
322+ // falling back to using the deprecated `locationContext` if we fail
323+ // to find it through the `locationContext2`.
329324 func getTaskSignature( from info: SwiftBuildMessage . DiagnosticInfo ) -> String ? {
330325 if let taskSignature = info. locationContext2. taskSignature {
331326 return taskSignature
@@ -346,6 +341,7 @@ final class SwiftBuildSystemMessageHandler {
346341 self . observabilityScope. emit ( info: decodedOutput)
347342 }
348343
344+ // Record that we've emitted the output for a given task signature.
349345 self . tasksEmitted. insert ( info. taskSignature)
350346 }
351347
0 commit comments