Skip to content

Commit 5f3e28f

Browse files
committed
Address feedback
1 parent f3d7444 commit 5f3e28f

File tree

5 files changed

+21
-47
lines changed

5 files changed

+21
-47
lines changed

Sources/SWBCore/Dependencies.swift

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,11 @@ public struct DependencyValidationInfo: Hashable, Sendable, Codable {
240240
public struct Import: Hashable, Sendable, Codable {
241241
public let dependency: ModuleDependency
242242
public let importLocations: [Diagnostic.Location]
243+
244+
public init(dependency: ModuleDependency, importLocations: [Diagnostic.Location]) {
245+
self.dependency = dependency
246+
self.importLocations = importLocations
247+
}
243248
}
244249

245250
public enum Payload: Hashable, Sendable, Codable {
@@ -250,19 +255,7 @@ public struct DependencyValidationInfo: Hashable, Sendable, Codable {
250255

251256
public let payload: Payload
252257

253-
public init(files: [Path]?) {
254-
if let files {
255-
self.payload = .clangDependencies(files: files.map { $0.str })
256-
} else {
257-
self.payload = .unsupported
258-
}
259-
}
260-
261-
public init(imports: [(ModuleDependency, importLocations: [SWBUtil.Diagnostic.Location])]?) {
262-
if let imports {
263-
self.payload = .swiftDependencies(imports: imports.map { Import(dependency: $0.0, importLocations: $0.importLocations) })
264-
} else {
265-
self.payload = .unsupported
266-
}
258+
public init(payload: Payload) {
259+
self.payload = payload
267260
}
268261
}

Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -273,27 +273,14 @@ public struct SwiftSourceFileIndexingInfo: SourceFileIndexingInfo {
273273
}
274274
}
275275

276-
public struct SwiftDependencyValidationPayload: Serializable, Encodable, Sendable {
276+
public struct SwiftDependencyValidationPayload: SerializableCodable, Encodable, Sendable {
277277
public let dependencyValidationOutputPath: Path
278278
public let moduleDependenciesContext: ModuleDependenciesContext
279279

280280
public init(dependencyValidationOutputPath: Path, moduleDependenciesContext: ModuleDependenciesContext) {
281281
self.dependencyValidationOutputPath = dependencyValidationOutputPath
282282
self.moduleDependenciesContext = moduleDependenciesContext
283283
}
284-
285-
public func serialize<T: Serializer>(to serializer: T) {
286-
serializer.serializeAggregate(2) {
287-
serializer.serialize(dependencyValidationOutputPath)
288-
serializer.serialize(moduleDependenciesContext)
289-
}
290-
}
291-
292-
public init(from deserializer: any Deserializer) throws {
293-
try deserializer.beginAggregate(2)
294-
self.dependencyValidationOutputPath = try deserializer.deserialize()
295-
self.moduleDependenciesContext = try deserializer.deserialize()
296-
}
297284
}
298285

299286
/// The minimal data we need to serialize to reconstruct `generatePreviewInfo`

Sources/SWBCore/SpecImplementations/Tools/ValidateDependencies.swift

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -44,21 +44,10 @@ public final class ValidateDependenciesSpec: CommandLineToolSpec, SpecImplementa
4444
}
4545
}
4646

47-
public struct ValidateDependenciesPayload: TaskPayload, Sendable {
47+
public struct ValidateDependenciesPayload: TaskPayload, Sendable, SerializableCodable {
4848
public let moduleDependenciesContext: ModuleDependenciesContext
4949

5050
public init(moduleDependenciesContext: ModuleDependenciesContext) {
5151
self.moduleDependenciesContext = moduleDependenciesContext
5252
}
53-
54-
public func serialize<T: Serializer>(to serializer: T) {
55-
serializer.serializeAggregate(1) {
56-
serializer.serialize(moduleDependenciesContext)
57-
}
58-
}
59-
60-
public init(from deserializer: any Deserializer) throws {
61-
try deserializer.beginAggregate(1)
62-
self.moduleDependenciesContext = try deserializer.deserialize()
63-
}
6453
}

Sources/SWBTaskExecution/TaskActions/ClangCompileTaskAction.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -325,22 +325,22 @@ public final class ClangCompileTaskAction: TaskAction, BuildValueValidatingTaskA
325325
}
326326
}
327327

328-
if let moduleDependenciesContext, lastResult == .succeeded {
328+
if lastResult == .succeeded {
329329
// Verify the dependencies from the trace data.
330-
let files: [Path]?
330+
let payload: DependencyValidationInfo.Payload
331331
if let traceFilePath {
332332
let fs = executionDelegate.fs
333333
let traceData = try JSONDecoder().decode(Array<TraceData>.self, from: Data(fs.read(traceFilePath)))
334334

335335
var allFiles = Set<Path>()
336336
traceData.forEach { allFiles.formUnion(Set($0.includes)) }
337-
files = Array(allFiles)
337+
payload = .clangDependencies(files: allFiles.map { $0.str })
338338
} else {
339-
files = nil
339+
payload = .unsupported
340340
}
341341

342342
if let dependencyValidationOutputPath {
343-
let validationInfo = DependencyValidationInfo(files: files)
343+
let validationInfo = DependencyValidationInfo(payload: payload)
344344
_ = try executionDelegate.fs.writeIfChanged(
345345
dependencyValidationOutputPath,
346346
contents: ByteString(

Sources/SWBTaskExecution/TaskActions/SwiftDriverTaskAction.swift

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,13 @@ final public class SwiftDriverTaskAction: TaskAction, BuildValueValidatingTaskAc
9898
if driverPayload.explicitModulesEnabled,
9999
let dependencyValidationPayload = payload.dependencyValidationPayload
100100
{
101-
let imports = try await dependencyGraph.mainModuleImportModuleDependencies(for: driverPayload.uniqueID)
102-
let validationInfo = DependencyValidationInfo(imports: imports)
101+
let payload: DependencyValidationInfo.Payload
102+
if let imports = try await dependencyGraph.mainModuleImportModuleDependencies(for: driverPayload.uniqueID) {
103+
payload = .swiftDependencies(imports: imports.map { .init(dependency: $0.0, importLocations: $0.importLocations) })
104+
} else {
105+
payload = .unsupported
106+
}
107+
let validationInfo = DependencyValidationInfo(payload: payload)
103108
_ = try executionDelegate.fs.writeIfChanged(
104109
dependencyValidationPayload.dependencyValidationOutputPath,
105110
contents: ByteString(

0 commit comments

Comments
 (0)