30 lines
851 B
Swift
30 lines
851 B
Swift
import Foundation
|
|
|
|
/// Represents unused or missing import statements.
|
|
enum ImportUsage {
|
|
/// The import is unused. Range is for the entire import statement.
|
|
case unused(module: String, range: NSRange)
|
|
/// The file is missing an explicit import of the `module`.
|
|
case missing(module: String)
|
|
|
|
/// The range where the violation for this import usage should be reported.
|
|
var violationRange: NSRange? {
|
|
switch self {
|
|
case .unused(_, let range):
|
|
return range
|
|
case .missing:
|
|
return nil
|
|
}
|
|
}
|
|
|
|
/// The reason why this import usage is a violation.
|
|
var violationReason: String? {
|
|
switch self {
|
|
case .unused:
|
|
return nil
|
|
case .missing(let module):
|
|
return "Missing import for referenced module '\(module)'"
|
|
}
|
|
}
|
|
}
|