Skip to content

Commit fc55317

Browse files
authored
Merge pull request #72 from robinkunde/rk/SR-12129
SR-12129: Diagnose lack of input files
2 parents c835d02 + 83dd2eb commit fc55317

File tree

1 file changed

+25
-3
lines changed

1 file changed

+25
-3
lines changed

Sources/SwiftDriver/Driver/Driver.swift

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,28 @@ public enum ModuleOutput: Equatable {
4141

4242
/// The Swift driver.
4343
public struct Driver {
44-
enum Error: Swift.Error {
44+
public enum Error: Swift.Error, DiagnosticData {
4545
case invalidDriverName(String)
4646
case invalidInput(String)
47-
case subcommandPassedToDriver
47+
case noJobsPassedToDriverFromEmptyInputFileList
4848
case relativeFrontendPath(String)
49+
case subcommandPassedToDriver
50+
51+
public var description: String {
52+
switch self {
53+
case .invalidDriverName(let driverName):
54+
return "invalid driver name: \(driverName)"
55+
case .invalidInput(let input):
56+
return "invalid input: \(input)"
57+
case .noJobsPassedToDriverFromEmptyInputFileList:
58+
return "no input files"
59+
case .relativeFrontendPath(let path):
60+
// TODO: where is this error thrown
61+
return "relative frontend path: \(path)"
62+
case .subcommandPassedToDriver:
63+
return "subcommand passed to driver"
64+
}
65+
}
4966
}
5067

5168
/// The set of environment variables that are visible to the driver and
@@ -604,7 +621,12 @@ extension Driver {
604621
try printVersion(outputStream: &stderrStream)
605622
}
606623

607-
if jobs.isEmpty { return }
624+
guard !jobs.isEmpty else {
625+
guard !inputFiles.isEmpty else {
626+
throw Error.noJobsPassedToDriverFromEmptyInputFileList
627+
}
628+
return
629+
}
608630

609631
let forceResponseFiles = parsedOptions.contains(.driverForceResponseFiles)
610632

0 commit comments

Comments
 (0)