 import Foundation
 import SourceKittenFramework
+
+private let warnSourceKitFailedOnceImpl: Void = {
+    queuedPrintError("SourceKit-based rules will be skipped because sourcekitd has failed.")
+}()
+
+private func warnSourceKitFailedOnce() {
+    _ = warnSourceKitFailedOnceImpl
+}
 
 private struct LintResult {
     let violations: [StyleViolation]

              superfluousDisableCommandRule: SuperfluousDisableCommandRule?,
              compilerArguments: [String]) -> LintResult? {
        // Empty files shouldn't trigger violations
        if file.isEmpty { return nil }

        if !(self is SourceKitFreeRule) && file.sourcekitdFailed {
            return nil
        }

        if SwiftVersion.current < Self.description.minSwiftVersion {
            return nil
        }


            return cached
        }

        let regions = file.regions()
        let superfluousDisableCommandRule = rules.first(where: {
            $0 is SuperfluousDisableCommandRule
