// // ForceCastRule.swift // SwiftLint // // Created by JP Simard on 5/16/15. // Copyright © 2015 Realm. All rights reserved. // import SourceKittenFramework public struct ForceCastRule: ConfigurationProviderRule { public var configuration = SeverityConfiguration(.error) public init() {} public static let description = RuleDescription( identifier: "force_cast", name: "Force Cast", description: "Force casts should be avoided.", nonTriggeringExamples: [ "NSNumber() as? Int\n" ], triggeringExamples: [ "NSNumber() ↓as! Int\n" ] ) public func validate(file: File) -> [StyleViolation] { return file.match(pattern: "as!", with: [.keyword]).map { StyleViolation(ruleDescription: type(of: self).description, severity: configuration.severity, location: Location(file: file, characterOffset: $0.location)) } } }