Skip to content

Commit 8c5daee

Browse files
author
David Ungar
committed
Don't crash the compiler
1 parent 872ff86 commit 8c5daee

File tree

1 file changed

+68
-68
lines changed

1 file changed

+68
-68
lines changed

Tests/SwiftDriverTests/IncrementalCompilationTests.swift

Lines changed: 68 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1134,263 +1134,263 @@ fileprivate protocol DiagVerifiable {}
11341134
extension IncrementalCompilationTests: DiagVerifiable {}
11351135

11361136
extension DiagVerifiable {
1137-
private typealias DB = DiagsBuilder // reduce the clutter
1137+
11381138

11391139
// MARK: - misc
1140-
@DB var enablingCrossModule: [Diagnostic.Message] {
1140+
@DiagsBuilder var enablingCrossModule: [Diagnostic.Message] {
11411141
"Incremental compilation: Enabling incremental cross-module building"
11421142
}
1143-
@DB func disabledForRemoval(_ removedInput: String) -> [Diagnostic.Message] {
1143+
@DiagsBuilder func disabledForRemoval(_ removedInput: String) -> [Diagnostic.Message] {
11441144
"Incremental compilation: Incremental compilation has been disabled, because the following inputs were used in the previous compilation but not in this one: \(removedInput).swift"
11451145
}
11461146
// MARK: - build record
1147-
@DB var cannotReadBuildRecord: [Diagnostic.Message] {
1147+
@DiagsBuilder var cannotReadBuildRecord: [Diagnostic.Message] {
11481148
"Incremental compilation: Incremental compilation could not read build record at"
11491149
}
1150-
@DB var disablingIncrementalCannotReadBuildRecord: [Diagnostic.Message] {
1150+
@DiagsBuilder var disablingIncrementalCannotReadBuildRecord: [Diagnostic.Message] {
11511151
"Incremental compilation: Disabling incremental build: could not read build record"
11521152
}
11531153
// MARK: - graph
1154-
@DB var createdGraphFromSwiftdeps: [Diagnostic.Message] {
1154+
@DiagsBuilder var createdGraphFromSwiftdeps: [Diagnostic.Message] {
11551155
"Incremental compilation: Created dependency graph from swiftdeps files"
11561156
}
1157-
@DB var readGraph: [Diagnostic.Message] {
1157+
@DiagsBuilder var readGraph: [Diagnostic.Message] {
11581158
"Incremental compilation: Read dependency graph"
11591159
}
11601160
// MARK: - dependencies
1161-
@DB func fingerprintChanged(_ aspect: DependencyKey.DeclAspect, _ input: String) -> [Diagnostic.Message] {
1161+
@DiagsBuilder func fingerprintChanged(_ aspect: DependencyKey.DeclAspect, _ input: String) -> [Diagnostic.Message] {
11621162
"Incremental compilation: Fingerprint changed for \(aspect) of source file \(input).swiftdeps in \(input).swiftdeps"
11631163
}
11641164

1165-
@DB func newDefinitionOfSourceFile(_ aspect: DependencyKey.DeclAspect, _ input: String) -> [Diagnostic.Message] {
1165+
@DiagsBuilder func newDefinitionOfSourceFile(_ aspect: DependencyKey.DeclAspect, _ input: String) -> [Diagnostic.Message] {
11661166
"Incremental compilation: New definition: \(aspect) of source file \(input).swiftdeps in \(input).swiftdeps"
11671167
}
1168-
@DB func newDefinitionOfTopLevelName(_ aspect: DependencyKey.DeclAspect, name: String, input: String) -> [Diagnostic.Message] {
1168+
@DiagsBuilder func newDefinitionOfTopLevelName(_ aspect: DependencyKey.DeclAspect, name: String, input: String) -> [Diagnostic.Message] {
11691169
"Incremental compilation: New definition: \(aspect) of top-level name '\(name)' in \(input).swiftdeps"
11701170
}
11711171

1172-
@DB func foundDependent(of defInput: String, compiling useInput: String) -> [Diagnostic.Message] {
1172+
@DiagsBuilder func foundDependent(of defInput: String, compiling useInput: String) -> [Diagnostic.Message] {
11731173
"Incremental compilation: Found dependent of \(defInput).swift: {compile: \(useInput).o <= \(useInput).swift}"
11741174
}
1175-
@DB func hasMalformed(_ newInput: String) -> [Diagnostic.Message] {
1175+
@DiagsBuilder func hasMalformed(_ newInput: String) -> [Diagnostic.Message] {
11761176
"Incremental compilation: Has malformed dependency source; will queue {compile: \(newInput).o <= \(newInput).swift}"
11771177
}
1178-
@DB func failedToFindSource(_ input: String) -> [Diagnostic.Message] {
1178+
@DiagsBuilder func failedToFindSource(_ input: String) -> [Diagnostic.Message] {
11791179
.warning("Failed to find source file for '\(input).swiftdeps', recovering with a full rebuild. Next build will be incremental.")
11801180
}
1181-
@DB func failedToReadSomeSource(compiling input: String) -> [Diagnostic.Message] {
1181+
@DiagsBuilder func failedToReadSomeSource(compiling input: String) -> [Diagnostic.Message] {
11821182
"Incremental compilation: Failed to read some dependencies source; compiling everything {compile: \(input).o <= \(input).swift}"
11831183
}
11841184

11851185
// MARK: - tracing
1186-
@DB func trace(@TraceBuilder _ steps: () -> String) -> [Diagnostic.Message] {
1186+
@DiagsBuilder func trace(@TraceBuilder _ steps: () -> String) -> [Diagnostic.Message] {
11871187
steps()
11881188
}
11891189

11901190
// MARK: - scheduling
1191-
@DB func schedulingAlwaysRebuild(_ input: String) -> [Diagnostic.Message] {
1191+
@DiagsBuilder func schedulingAlwaysRebuild(_ input: String) -> [Diagnostic.Message] {
11921192
"Incremental compilation: scheduling dependents of \(input).swift; -driver-always-rebuild-dependents"
11931193
}
1194-
@DB func schedulingNew(_ input: String) -> [Diagnostic.Message] {
1194+
@DiagsBuilder func schedulingNew(_ input: String) -> [Diagnostic.Message] {
11951195
"Incremental compilation: Scheduling new {compile: \(input).o <= \(input).swift}"
11961196
}
11971197

1198-
@DB func schedulingChanged(_ inputs: [String]) -> [Diagnostic.Message] {
1198+
@DiagsBuilder func schedulingChanged(_ inputs: [String]) -> [Diagnostic.Message] {
11991199
for input in inputs {
12001200
"Incremental compilation: Scheduing changed input {compile: \(input).o <= \(input).swift}"
12011201
}
12021202
}
1203-
@DB func schedulingChanged(_ inputs: String...) -> [Diagnostic.Message] {
1203+
@DiagsBuilder func schedulingChanged(_ inputs: String...) -> [Diagnostic.Message] {
12041204
schedulingChanged(inputs)
12051205
}
12061206

1207-
@DB func schedulingInvalidated(_ inputs: [String]) -> [Diagnostic.Message] {
1207+
@DiagsBuilder func schedulingInvalidated(_ inputs: [String]) -> [Diagnostic.Message] {
12081208
for input in inputs {
12091209
"Incremental compilation: Scheduling invalidated {compile: \(input).o <= \(input).swift}"
12101210
}
12111211
}
1212-
@DB func schedulingInvalidated(_ inputs: String...) -> [Diagnostic.Message] { schedulingInvalidated(inputs) }
1212+
@DiagsBuilder func schedulingInvalidated(_ inputs: String...) -> [Diagnostic.Message] { schedulingInvalidated(inputs) }
12131213

1214-
@DB func schedulingChangedInitialQueuing(_ inputs: String...) -> [Diagnostic.Message] {
1214+
@DiagsBuilder func schedulingChangedInitialQueuing(_ inputs: String...) -> [Diagnostic.Message] {
12151215
for input in inputs {
12161216
schedulingChanged(input)
12171217
queuingInitial(input)
12181218
notSchedulingDependentsUnknownChanges(input)
12191219
}
12201220
}
12211221

1222-
@DB func schedulingDependent(of defInput: String, compiling useInput: String) -> [Diagnostic.Message] {
1222+
@DiagsBuilder func schedulingDependent(of defInput: String, compiling useInput: String) -> [Diagnostic.Message] {
12231223
"Incremental compilation: Immediately scheduling dependent on \(defInput).swift {compile: \(useInput).o <= \(useInput).swift}"
12241224
}
12251225

1226-
@DB func notSchedulingDependentsNoEntry(_ input: String) -> [Diagnostic.Message] {
1226+
@DiagsBuilder func notSchedulingDependentsNoEntry(_ input: String) -> [Diagnostic.Message] {
12271227
"Incremental compilation: not scheduling dependents of \(input).swift: no entry in build record or dependency graph"
12281228
}
12291229

1230-
@DB func notSchedulingDependentsUnknownChanges(_ inputs: [String]) -> [Diagnostic.Message] {
1230+
@DiagsBuilder func notSchedulingDependentsUnknownChanges(_ inputs: [String]) -> [Diagnostic.Message] {
12311231
for input in inputs {
12321232
"Incremental compilation: not scheduling dependents of \(input).swift; unknown changes"
12331233
}
12341234
}
1235-
@DB func notSchedulingDependentsUnknownChanges(_ inputs: String...) -> [Diagnostic.Message] {
1235+
@DiagsBuilder func notSchedulingDependentsUnknownChanges(_ inputs: String...) -> [Diagnostic.Message] {
12361236
notSchedulingDependentsUnknownChanges(inputs)
12371237
}
12381238

1239-
@DB func missing(_ input: String) -> [Diagnostic.Message] {
1239+
@DiagsBuilder func missing(_ input: String) -> [Diagnostic.Message] {
12401240
"Incremental compilation: Missing an output; will queue {compile: \(input).o <= \(input).swift}"
12411241
}
12421242

1243-
@DB func queuingInitial(_ inputs: [String]) -> [Diagnostic.Message] {
1243+
@DiagsBuilder func queuingInitial(_ inputs: [String]) -> [Diagnostic.Message] {
12441244
for input in inputs {
12451245
"Incremental compilation: Queuing (initial): {compile: \(input).o <= \(input).swift}"
12461246
}
12471247
}
1248-
@DB func queuingInitial(_ inputs: String...) -> [Diagnostic.Message] {
1248+
@DiagsBuilder func queuingInitial(_ inputs: String...) -> [Diagnostic.Message] {
12491249
queuingInitial(inputs)
12501250
}
12511251

1252-
@DB func queuingBecauseInitial(_ input: String) -> [Diagnostic.Message] {
1252+
@DiagsBuilder func queuingBecauseInitial(_ input: String) -> [Diagnostic.Message] {
12531253
"Incremental compilation: Queuing because of the initial set: {compile: \(input).o <= \(input).swift}"
12541254
}
12551255

1256-
@DB func queuingLater(_ inputs: [String]) -> [Diagnostic.Message] {
1256+
@DiagsBuilder func queuingLater(_ inputs: [String]) -> [Diagnostic.Message] {
12571257
for input in inputs {
12581258
"Incremental compilation: Queuing because of dependencies discovered later: {compile: \(input).o <= \(input).swift}"
12591259
}
12601260
}
1261-
@DB func queuingLater(_ inputs: String...) -> [Diagnostic.Message] { queuingLater(inputs) }
1261+
@DiagsBuilder func queuingLater(_ inputs: String...) -> [Diagnostic.Message] { queuingLater(inputs) }
12621262

1263-
@DB func queuingLaterSchedInvalBatchLink(_ inputs: [String]) -> [Diagnostic.Message] {
1263+
@DiagsBuilder func queuingLaterSchedInvalBatchLink(_ inputs: [String]) -> [Diagnostic.Message] {
12641264
queuingLater(inputs)
12651265
schedulingInvalidated(inputs)
12661266
}
1267-
@DB func queuingLaterSchedInvalBatchLink(_ inputs: String...) -> [Diagnostic.Message] {
1267+
@DiagsBuilder func queuingLaterSchedInvalBatchLink(_ inputs: String...) -> [Diagnostic.Message] {
12681268
queuingLaterSchedInvalBatchLink(inputs)
12691269
}
12701270

12711271

12721272
// MARK: - skipping
1273-
@DB func maySkip(_ inputs: [String]) -> [Diagnostic.Message] {
1273+
@DiagsBuilder func maySkip(_ inputs: [String]) -> [Diagnostic.Message] {
12741274
for input in inputs {
12751275
"Incremental compilation: May skip current input: {compile: \(input).o <= \(input).swift}"
12761276
}
12771277
}
1278-
@DB func maySkip(_ inputs: String...) -> [Diagnostic.Message] {
1278+
@DiagsBuilder func maySkip(_ inputs: String...) -> [Diagnostic.Message] {
12791279
maySkip(inputs)
12801280
}
1281-
@DB func skipping(_ inputs: [String]) -> [Diagnostic.Message] {
1281+
@DiagsBuilder func skipping(_ inputs: [String]) -> [Diagnostic.Message] {
12821282
for input in inputs {
12831283
"Incremental compilation: Skipping input: {compile: \(input).o <= \(input).swift}"
12841284
}
12851285
}
1286-
@DB func skipping(_ inputs: String...) -> [Diagnostic.Message] {
1286+
@DiagsBuilder func skipping(_ inputs: String...) -> [Diagnostic.Message] {
12871287
skipping(inputs)
12881288
}
1289-
@DB func skipped(_ inputs: [String]) -> [Diagnostic.Message] {
1289+
@DiagsBuilder func skipped(_ inputs: [String]) -> [Diagnostic.Message] {
12901290
for input in inputs {
12911291
"Skipped Compiling \(input).swift"
12921292
}
12931293
}
1294-
@DB func skipped(_ inputs: String...) -> [Diagnostic.Message] {
1294+
@DiagsBuilder func skipped(_ inputs: String...) -> [Diagnostic.Message] {
12951295
skipped(inputs)
12961296
}
1297-
@DB func skippingAll(_ inputs: [String]) -> [Diagnostic.Message] {
1297+
@DiagsBuilder func skippingAll(_ inputs: [String]) -> [Diagnostic.Message] {
12981298
maySkip(inputs)
12991299
skipping(inputs)
13001300
skippingLinking
13011301
skipped(inputs)
13021302
}
1303-
@DB func skippingAll(_ inputs: String...) -> [Diagnostic.Message] {
1303+
@DiagsBuilder func skippingAll(_ inputs: String...) -> [Diagnostic.Message] {
13041304
skippingAll(inputs)
13051305
}
1306-
@DB func readGraphAndSkipAll(_ inputs: [String]) -> [Diagnostic.Message] {
1306+
@DiagsBuilder func readGraphAndSkipAll(_ inputs: [String]) -> [Diagnostic.Message] {
13071307
readGraph
13081308
enablingCrossModule
13091309
skippingAll(inputs)
13101310
}
1311-
@DB func readGraphAndSkipAll(_ inputs: String...) -> [Diagnostic.Message] {
1311+
@DiagsBuilder func readGraphAndSkipAll(_ inputs: String...) -> [Diagnostic.Message] {
13121312
readGraphAndSkipAll(inputs)
13131313
}
13141314

13151315
// MARK: - batching
1316-
@DB func addingToBatch(_ inputs: [String], _ b: Int) -> [Diagnostic.Message] {
1316+
@DiagsBuilder func addingToBatch(_ inputs: [String], _ b: Int) -> [Diagnostic.Message] {
13171317
for input in inputs {
13181318
"Adding {compile: \(input).swift} to batch \(b)"
13191319
}
13201320
}
1321-
@DB func formingBatch(_ inputs: [String]) -> [Diagnostic.Message] {
1321+
@DiagsBuilder func formingBatch(_ inputs: [String]) -> [Diagnostic.Message] {
13221322
"Forming batch job from \(inputs.count) constituents: \(inputs.map{$0 + ".swift"}.joined(separator: ", "))"
13231323
}
1324-
@DB func formingBatch(_ inputs: String...) -> [Diagnostic.Message] {
1324+
@DiagsBuilder func formingBatch(_ inputs: String...) -> [Diagnostic.Message] {
13251325
formingBatch(inputs)
13261326
}
1327-
@DB func foundBatchableJobs(_ jobCount: Int) -> [Diagnostic.Message] {
1327+
@DiagsBuilder func foundBatchableJobs(_ jobCount: Int) -> [Diagnostic.Message] {
13281328
// Omitting the "s" from "jobs" works for either 1 or many, since
13291329
// the verifier does prefix matching.
13301330
"Found \(jobCount) batchable job"
13311331
}
1332-
@DB var formingOneBatch: [Diagnostic.Message] { "Forming into 1 batch"}
1332+
@DiagsBuilder var formingOneBatch: [Diagnostic.Message] { "Forming into 1 batch"}
13331333

1334-
@DB func findingAndFormingBatch(_ jobCount: Int) -> [Diagnostic.Message] {
1334+
@DiagsBuilder func findingAndFormingBatch(_ jobCount: Int) -> [Diagnostic.Message] {
13351335
foundBatchableJobs(jobCount); formingOneBatch
13361336
}
1337-
@DB func addingToBatchThenForming(_ inputs: [String]) -> [Diagnostic.Message] {
1337+
@DiagsBuilder func addingToBatchThenForming(_ inputs: [String]) -> [Diagnostic.Message] {
13381338
addingToBatch(inputs, 0); formingBatch(inputs)
13391339
}
1340-
@DB func addingToBatchThenForming(_ inputs: String...) -> [Diagnostic.Message] {
1340+
@DiagsBuilder func addingToBatchThenForming(_ inputs: String...) -> [Diagnostic.Message] {
13411341
addingToBatchThenForming(inputs)
13421342
}
13431343

13441344
// MARK: - compiling
1345-
@DB func starting(_ inputs: [String]) -> [Diagnostic.Message] {
1345+
@DiagsBuilder func starting(_ inputs: [String]) -> [Diagnostic.Message] {
13461346
"Starting Compiling \(inputs.map{$0 + ".swift"}.joined(separator: ", "))"
13471347
}
1348-
@DB func finished(_ inputs: [String]) -> [Diagnostic.Message] {
1348+
@DiagsBuilder func finished(_ inputs: [String]) -> [Diagnostic.Message] {
13491349
"Finished Compiling \(inputs.map{$0 + ".swift"}.joined(separator: ", "))"
13501350
}
1351-
@DB func compiling(_ inputs: [String]) -> [Diagnostic.Message] {
1351+
@DiagsBuilder func compiling(_ inputs: [String]) -> [Diagnostic.Message] {
13521352
starting(inputs); finished(inputs)
13531353
}
1354-
@DB func compiling(_ inputs: String...) -> [Diagnostic.Message] {
1354+
@DiagsBuilder func compiling(_ inputs: String...) -> [Diagnostic.Message] {
13551355
compiling(inputs)
13561356
}
13571357

13581358
// MARK: - batching and compiling
1359-
@DB func findingBatchingCompiling(_ inputs: [String]) -> [Diagnostic.Message] {
1359+
@DiagsBuilder func findingBatchingCompiling(_ inputs: [String]) -> [Diagnostic.Message] {
13601360
findingAndFormingBatch(inputs.count)
13611361
addingToBatchThenForming(inputs)
13621362
compiling(inputs)
13631363
}
1364-
@DB func findingBatchingCompiling(_ inputs: String...) -> [Diagnostic.Message] {
1364+
@DiagsBuilder func findingBatchingCompiling(_ inputs: String...) -> [Diagnostic.Message] {
13651365
findingBatchingCompiling(inputs)
13661366
}
13671367

13681368
// MARK: - linking
1369-
@DB var schedulingPostCompileJobs: [Diagnostic.Message] {
1369+
@DiagsBuilder var schedulingPostCompileJobs: [Diagnostic.Message] {
13701370
"Incremental compilation: Scheduling all post-compile jobs because something was compiled"
13711371
}
1372-
@DB var startingLinking: [Diagnostic.Message] { "Starting Linking theModule" }
1372+
@DiagsBuilder var startingLinking: [Diagnostic.Message] { "Starting Linking theModule" }
13731373

1374-
@DB var finishedLinking: [Diagnostic.Message] { "Finished Linking theModule" }
1374+
@DiagsBuilder var finishedLinking: [Diagnostic.Message] { "Finished Linking theModule" }
13751375

1376-
@DB var skippingLinking: [Diagnostic.Message] {
1376+
@DiagsBuilder var skippingLinking: [Diagnostic.Message] {
13771377
"Incremental compilation: Skipping job: Linking theModule; oldest output is current"
13781378
}
1379-
@DB var schedLinking: [Diagnostic.Message] { schedulingPostCompileJobs; linking }
1379+
@DiagsBuilder var schedLinking: [Diagnostic.Message] { schedulingPostCompileJobs; linking }
13801380

1381-
@DB var linking: [Diagnostic.Message] { startingLinking; finishedLinking}
1381+
@DiagsBuilder var linking: [Diagnostic.Message] { startingLinking; finishedLinking}
13821382

13831383
// MARK: - autolinking
1384-
@DB func queuingExtractingAutolink(_ module: String) -> [Diagnostic.Message] {
1384+
@DiagsBuilder func queuingExtractingAutolink(_ module: String) -> [Diagnostic.Message] {
13851385
"Incremental compilation: Queuing Extracting autolink information for module \(module)"
13861386
}
1387-
@DB func startingExtractingAutolink(_ module: String) -> [Diagnostic.Message] {
1387+
@DiagsBuilder func startingExtractingAutolink(_ module: String) -> [Diagnostic.Message] {
13881388
"Starting Extracting autolink information for module \(module)"
13891389
}
1390-
@DB func finishedExtractingAutolink(_ module: String) -> [Diagnostic.Message] {
1390+
@DiagsBuilder func finishedExtractingAutolink(_ module: String) -> [Diagnostic.Message] {
13911391
"Finished Extracting autolink information for module \(module)"
13921392
}
1393-
@DB func extractingAutolink(_ module: String) -> [Diagnostic.Message] {
1393+
@DiagsBuilder func extractingAutolink(_ module: String) -> [Diagnostic.Message] {
13941394
startingExtractingAutolink(module)
13951395
finishedExtractingAutolink(module)
13961396
}

0 commit comments

Comments
 (0)