From 961df5a6150d9ad860ce56b5cb703029159f9e94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cihat=20Gu=CC=88ndu=CC=88z?= Date: Mon, 23 Jul 2018 11:20:49 +0200 Subject: [PATCH 1/9] Add test for new expected behavior --- Tests/SwiftLintFrameworkTests/FileNameRuleTests.swift | 1 + .../Resources/FileNameRuleFixtures/BoolExtension.swift | 6 ++++++ 2 files changed, 7 insertions(+) create mode 100644 Tests/SwiftLintFrameworkTests/Resources/FileNameRuleFixtures/BoolExtension.swift diff --git a/Tests/SwiftLintFrameworkTests/FileNameRuleTests.swift b/Tests/SwiftLintFrameworkTests/FileNameRuleTests.swift index 840f6fab4..d7c164a20 100644 --- a/Tests/SwiftLintFrameworkTests/FileNameRuleTests.swift +++ b/Tests/SwiftLintFrameworkTests/FileNameRuleTests.swift @@ -36,6 +36,7 @@ class FileNameRuleTests: XCTestCase { func testExtensionNameDoesntTrigger() { XCTAssert(try validate(fileName: "NSString+Extension.swift").isEmpty) + XCTAssert(try validate(fileName: "BoolExtension.swift").isEmpty) } func testMisspelledNameDoesTrigger() { diff --git a/Tests/SwiftLintFrameworkTests/Resources/FileNameRuleFixtures/BoolExtension.swift b/Tests/SwiftLintFrameworkTests/Resources/FileNameRuleFixtures/BoolExtension.swift new file mode 100644 index 000000000..498b59d8d --- /dev/null +++ b/Tests/SwiftLintFrameworkTests/Resources/FileNameRuleFixtures/BoolExtension.swift @@ -0,0 +1,6 @@ +struct MyStruct {} +class MyClass {} + +extension Bool { + func toggle() {} +} From 94c14c73bceadbd8797ef0eb7221eb23c47ebaed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cihat=20Gu=CC=88ndu=CC=88z?= Date: Mon, 23 Jul 2018 11:47:52 +0200 Subject: [PATCH 2/9] Add exception for types ending with Extension --- Source/SwiftLintFramework/Rules/FileNameRule.swift | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Source/SwiftLintFramework/Rules/FileNameRule.swift b/Source/SwiftLintFramework/Rules/FileNameRule.swift index 6b6180442..259d3f659 100644 --- a/Source/SwiftLintFramework/Rules/FileNameRule.swift +++ b/Source/SwiftLintFramework/Rules/FileNameRule.swift @@ -33,7 +33,12 @@ public struct FileNameRule: ConfigurationProviderRule, OptInRule { return [] } - let typeInFileName = fileName.components(separatedBy: CharacterSet(charactersIn: "+.")).first ?? fileName + var typeInFileName = fileName.components(separatedBy: CharacterSet(charactersIn: "+.")).first ?? fileName + + let extensionSuffix = "Extension" + if typeInFileName.hasSuffix(extensionSuffix) { + typeInFileName = String(typeInFileName.dropLast(extensionSuffix.count)) + } let allDeclaredTypeNames = file.structure.dictionary.recursiveDeclaredTypeNames() guard !allDeclaredTypeNames.isEmpty, !allDeclaredTypeNames.contains(typeInFileName) else { From 91b5a0cdeb08626b3fbcd1026604c86b0c9e8550 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cihat=20Gu=CC=88ndu=CC=88z?= Date: Mon, 23 Jul 2018 11:54:59 +0200 Subject: [PATCH 3/9] Add changelog entry --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7bffc1c41..880f01a6d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -54,6 +54,10 @@ [Marcelo Fabri](https://github.com/marcelofabri) [#2233](https://github.com/realm/SwiftLint/issues/2233) +* Fix false positive on `file_name` rule when file ends with `Extension`. + [Cihat Gündüz](https://github.com/Dschee) + [#2309](https://github.com/realm/SwiftLint/issues/2309) + ## 0.26.0: Maytagged Pointers #### Breaking From c02dd17155eb9d3d8b85152582897d91b9d1fe16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cihat=20Gu=CC=88ndu=CC=88z?= Date: Tue, 24 Jul 2018 16:35:38 +0200 Subject: [PATCH 4/9] Add prefix_pattern and suffix_pattern options to file_name rule --- .../Extensions/String+SwiftLint.swift | 4 ++++ .../Rules/FileNameRule.swift | 23 +++++++++++++++---- .../FileNameConfiguration.swift | 17 ++++++++++++-- .../FileNameRuleTests.swift | 18 +++++++++++++-- .../FileNameRuleFixtures/BoolExtensions.swift | 6 +++++ .../FileNameRuleFixtures/ExtensionBool.swift | 6 +++++ .../FileNameRuleFixtures/ExtensionsBool.swift | 6 +++++ 7 files changed, 72 insertions(+), 8 deletions(-) create mode 100644 Tests/SwiftLintFrameworkTests/Resources/FileNameRuleFixtures/BoolExtensions.swift create mode 100644 Tests/SwiftLintFrameworkTests/Resources/FileNameRuleFixtures/ExtensionBool.swift create mode 100644 Tests/SwiftLintFrameworkTests/Resources/FileNameRuleFixtures/ExtensionsBool.swift diff --git a/Source/SwiftLintFramework/Extensions/String+SwiftLint.swift b/Source/SwiftLintFramework/Extensions/String+SwiftLint.swift index 18681e69c..f34a5012d 100644 --- a/Source/SwiftLintFramework/Extensions/String+SwiftLint.swift +++ b/Source/SwiftLintFramework/Extensions/String+SwiftLint.swift @@ -71,6 +71,10 @@ extension String { return fromIndex.. String { return bridge().absolutePathRepresentation().bridge().standardizingPath } diff --git a/Source/SwiftLintFramework/Rules/FileNameRule.swift b/Source/SwiftLintFramework/Rules/FileNameRule.swift index 259d3f659..7915e294a 100644 --- a/Source/SwiftLintFramework/Rules/FileNameRule.swift +++ b/Source/SwiftLintFramework/Rules/FileNameRule.swift @@ -15,7 +15,12 @@ private extension Dictionary where Key: ExpressibleByStringLiteral { } public struct FileNameRule: ConfigurationProviderRule, OptInRule { - public var configuration = FileNameConfiguration(severity: .warning, excluded: ["main.swift", "LinuxMain.swift"]) + public var configuration = FileNameConfiguration( + severity: .warning, + excluded: ["main.swift", "LinuxMain.swift"], + prefixPattern: "", + suffixPattern: "\\+.*" + ) public init() {} @@ -33,11 +38,21 @@ public struct FileNameRule: ConfigurationProviderRule, OptInRule { return [] } + let prefixRegex = regex("\\A\(configuration.prefixPattern)") + let suffixRegex = regex("\(configuration.suffixPattern)\\z") + var typeInFileName = fileName.components(separatedBy: CharacterSet(charactersIn: "+.")).first ?? fileName - let extensionSuffix = "Extension" - if typeInFileName.hasSuffix(extensionSuffix) { - typeInFileName = String(typeInFileName.dropLast(extensionSuffix.count)) + if let prefixMatch = prefixRegex.firstMatch(in: typeInFileName, options: [], range: typeInFileName.fullNSRange) { + if let range = typeInFileName.nsrangeToIndexRange(prefixMatch.range) { + typeInFileName.removeSubrange(range) + } + } + + if let suffixMatch = suffixRegex.firstMatch(in: typeInFileName, options: [], range: typeInFileName.fullNSRange) { + if let range = typeInFileName.nsrangeToIndexRange(suffixMatch.range) { + typeInFileName.removeSubrange(range) + } } let allDeclaredTypeNames = file.structure.dictionary.recursiveDeclaredTypeNames() diff --git a/Source/SwiftLintFramework/Rules/RuleConfigurations/FileNameConfiguration.swift b/Source/SwiftLintFramework/Rules/RuleConfigurations/FileNameConfiguration.swift index f8dc51b72..f11d841e1 100644 --- a/Source/SwiftLintFramework/Rules/RuleConfigurations/FileNameConfiguration.swift +++ b/Source/SwiftLintFramework/Rules/RuleConfigurations/FileNameConfiguration.swift @@ -6,10 +6,15 @@ public struct FileNameConfiguration: RuleConfiguration, Equatable { private(set) public var severity: SeverityConfiguration private(set) public var excluded: Set + private(set) public var prefixPattern: String + private(set) public var suffixPattern: String - public init(severity: ViolationSeverity, excluded: [String] = []) { + public init(severity: ViolationSeverity, excluded: [String] = [], + prefixPattern: String = "", suffixPattern: String = "") { self.severity = SeverityConfiguration(severity) self.excluded = Set(excluded) + self.prefixPattern = prefixPattern + self.suffixPattern = suffixPattern } public mutating func apply(configuration: Any) throws { @@ -23,10 +28,18 @@ public struct FileNameConfiguration: RuleConfiguration, Equatable { if let excluded = [String].array(of: configurationDict["excluded"]) { self.excluded = Set(excluded) } + if let prefixPattern = configurationDict["prefix_pattern"] as? String { + self.prefixPattern = prefixPattern + } + if let suffixPattern = configurationDict["suffix_pattern"] as? String { + self.suffixPattern = suffixPattern + } } } public func == (lhs: FileNameConfiguration, rhs: FileNameConfiguration) -> Bool { return lhs.severity == rhs.severity && - lhs.excluded == rhs.excluded + lhs.excluded == rhs.excluded && + lhs.prefixPattern == rhs.prefixPattern && + lhs.suffixPattern == rhs.suffixPattern } diff --git a/Tests/SwiftLintFrameworkTests/FileNameRuleTests.swift b/Tests/SwiftLintFrameworkTests/FileNameRuleTests.swift index d7c164a20..388228301 100644 --- a/Tests/SwiftLintFrameworkTests/FileNameRuleTests.swift +++ b/Tests/SwiftLintFrameworkTests/FileNameRuleTests.swift @@ -7,11 +7,16 @@ private let fixturesDirectory = #file.bridge() .appendingPathComponent("Resources/FileNameRuleFixtures") class FileNameRuleTests: XCTestCase { - private func validate(fileName: String, excludedOverride: [String]? = nil) throws -> [StyleViolation] { + private func validate(fileName: String, excludedOverride: [String]? = nil, + prefixPattern: String? = nil, suffixPattern: String? = nil) throws -> [StyleViolation] { let file = File(path: fixturesDirectory.stringByAppendingPathComponent(fileName))! let rule: FileNameRule if let excluded = excludedOverride { rule = try FileNameRule(configuration: ["excluded": excluded]) + } else if let prefixPattern = prefixPattern { + rule = try FileNameRule(configuration: ["prefix_pattern": prefixPattern]) + } else if let suffixPattern = suffixPattern { + rule = try FileNameRule(configuration: ["suffix_pattern": suffixPattern]) } else { rule = FileNameRule() } @@ -36,7 +41,6 @@ class FileNameRuleTests: XCTestCase { func testExtensionNameDoesntTrigger() { XCTAssert(try validate(fileName: "NSString+Extension.swift").isEmpty) - XCTAssert(try validate(fileName: "BoolExtension.swift").isEmpty) } func testMisspelledNameDoesTrigger() { @@ -50,4 +54,14 @@ class FileNameRuleTests: XCTestCase { func testMainDoesTriggerWithoutOverride() { XCTAssertEqual(try validate(fileName: "main.swift", excludedOverride: []).count, 1) } + + func testCustomSuffixPattern() { + XCTAssert(try validate(fileName: "BoolExtension.swift", suffixPattern: "Extensions?").isEmpty) + XCTAssert(try validate(fileName: "BoolExtensions.swift", suffixPattern: "Extensions?").isEmpty) + } + + func testCustomPrefixPattern() { + XCTAssert(try validate(fileName: "ExtensionBool.swift", prefixPattern: "Extensions?").isEmpty) + XCTAssert(try validate(fileName: "ExtensionsBool.swift", prefixPattern: "Extensions?").isEmpty) + } } diff --git a/Tests/SwiftLintFrameworkTests/Resources/FileNameRuleFixtures/BoolExtensions.swift b/Tests/SwiftLintFrameworkTests/Resources/FileNameRuleFixtures/BoolExtensions.swift new file mode 100644 index 000000000..498b59d8d --- /dev/null +++ b/Tests/SwiftLintFrameworkTests/Resources/FileNameRuleFixtures/BoolExtensions.swift @@ -0,0 +1,6 @@ +struct MyStruct {} +class MyClass {} + +extension Bool { + func toggle() {} +} diff --git a/Tests/SwiftLintFrameworkTests/Resources/FileNameRuleFixtures/ExtensionBool.swift b/Tests/SwiftLintFrameworkTests/Resources/FileNameRuleFixtures/ExtensionBool.swift new file mode 100644 index 000000000..498b59d8d --- /dev/null +++ b/Tests/SwiftLintFrameworkTests/Resources/FileNameRuleFixtures/ExtensionBool.swift @@ -0,0 +1,6 @@ +struct MyStruct {} +class MyClass {} + +extension Bool { + func toggle() {} +} diff --git a/Tests/SwiftLintFrameworkTests/Resources/FileNameRuleFixtures/ExtensionsBool.swift b/Tests/SwiftLintFrameworkTests/Resources/FileNameRuleFixtures/ExtensionsBool.swift new file mode 100644 index 000000000..498b59d8d --- /dev/null +++ b/Tests/SwiftLintFrameworkTests/Resources/FileNameRuleFixtures/ExtensionsBool.swift @@ -0,0 +1,6 @@ +struct MyStruct {} +class MyClass {} + +extension Bool { + func toggle() {} +} From e3278ff8e5a60df1b977b10e1a72ae2b06cb750e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cihat=20Gu=CC=88ndu=CC=88z?= Date: Tue, 24 Jul 2018 16:38:45 +0200 Subject: [PATCH 5/9] Update Changelog + Fix lint issue --- CHANGELOG.md | 8 ++++---- Source/SwiftLintFramework/Rules/FileNameRule.swift | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 880f01a6d..2c8ff63c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,10 @@ `class` for class-only protocols. [Ornithologist Coder](https://github.com/ornithocoder) [#2283](https://github.com/realm/SwiftLint/issues/2283) + +* Add options `prefix_pattern` and `suffix_pattern` to rule `file_name`. + [Cihat Gündüz](https://github.com/Dschee) + [#2309](https://github.com/realm/SwiftLint/issues/2309) #### Bug Fixes @@ -54,10 +58,6 @@ [Marcelo Fabri](https://github.com/marcelofabri) [#2233](https://github.com/realm/SwiftLint/issues/2233) -* Fix false positive on `file_name` rule when file ends with `Extension`. - [Cihat Gündüz](https://github.com/Dschee) - [#2309](https://github.com/realm/SwiftLint/issues/2309) - ## 0.26.0: Maytagged Pointers #### Breaking diff --git a/Source/SwiftLintFramework/Rules/FileNameRule.swift b/Source/SwiftLintFramework/Rules/FileNameRule.swift index 7915e294a..d1de08224 100644 --- a/Source/SwiftLintFramework/Rules/FileNameRule.swift +++ b/Source/SwiftLintFramework/Rules/FileNameRule.swift @@ -43,14 +43,14 @@ public struct FileNameRule: ConfigurationProviderRule, OptInRule { var typeInFileName = fileName.components(separatedBy: CharacterSet(charactersIn: "+.")).first ?? fileName - if let prefixMatch = prefixRegex.firstMatch(in: typeInFileName, options: [], range: typeInFileName.fullNSRange) { - if let range = typeInFileName.nsrangeToIndexRange(prefixMatch.range) { + if let match = prefixRegex.firstMatch(in: typeInFileName, options: [], range: typeInFileName.fullNSRange) { + if let range = typeInFileName.nsrangeToIndexRange(match.range) { typeInFileName.removeSubrange(range) } } - if let suffixMatch = suffixRegex.firstMatch(in: typeInFileName, options: [], range: typeInFileName.fullNSRange) { - if let range = typeInFileName.nsrangeToIndexRange(suffixMatch.range) { + if let match = suffixRegex.firstMatch(in: typeInFileName, options: [], range: typeInFileName.fullNSRange) { + if let range = typeInFileName.nsrangeToIndexRange(match.range) { typeInFileName.removeSubrange(range) } } From 1c7066783155fcc72f17bd77e5a015c561741083 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cihat=20Gu=CC=88ndu=CC=88z?= Date: Tue, 24 Jul 2018 16:46:56 +0200 Subject: [PATCH 6/9] Remove hard-coded suffix style --- Source/SwiftLintFramework/Rules/FileNameRule.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/SwiftLintFramework/Rules/FileNameRule.swift b/Source/SwiftLintFramework/Rules/FileNameRule.swift index d1de08224..5b9941f1b 100644 --- a/Source/SwiftLintFramework/Rules/FileNameRule.swift +++ b/Source/SwiftLintFramework/Rules/FileNameRule.swift @@ -41,7 +41,7 @@ public struct FileNameRule: ConfigurationProviderRule, OptInRule { let prefixRegex = regex("\\A\(configuration.prefixPattern)") let suffixRegex = regex("\(configuration.suffixPattern)\\z") - var typeInFileName = fileName.components(separatedBy: CharacterSet(charactersIn: "+.")).first ?? fileName + var typeInFileName = fileName.components(separatedBy: ".").first ?? fileName if let match = prefixRegex.firstMatch(in: typeInFileName, options: [], range: typeInFileName.fullNSRange) { if let range = typeInFileName.nsrangeToIndexRange(match.range) { From bacc3ddacadc49fc05f716587dd3803ab72f0273 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cihat=20Gu=CC=88ndu=CC=88z?= Date: Tue, 24 Jul 2018 17:34:17 +0200 Subject: [PATCH 7/9] Add default suffixPattern value directly in configuration initalizer --- .../Rules/RuleConfigurations/FileNameConfiguration.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/SwiftLintFramework/Rules/RuleConfigurations/FileNameConfiguration.swift b/Source/SwiftLintFramework/Rules/RuleConfigurations/FileNameConfiguration.swift index f11d841e1..e299bced7 100644 --- a/Source/SwiftLintFramework/Rules/RuleConfigurations/FileNameConfiguration.swift +++ b/Source/SwiftLintFramework/Rules/RuleConfigurations/FileNameConfiguration.swift @@ -10,7 +10,7 @@ public struct FileNameConfiguration: RuleConfiguration, Equatable { private(set) public var suffixPattern: String public init(severity: ViolationSeverity, excluded: [String] = [], - prefixPattern: String = "", suffixPattern: String = "") { + prefixPattern: String = "", suffixPattern: String = "\\+.*") { self.severity = SeverityConfiguration(severity) self.excluded = Set(excluded) self.prefixPattern = prefixPattern From f2540cc53d80dcd1d31bee4ac8b31e8b186c475d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cihat=20Gu=CC=88ndu=CC=88z?= Date: Tue, 24 Jul 2018 17:37:37 +0200 Subject: [PATCH 8/9] Combine nested if-lets to single if-let --- Source/SwiftLintFramework/Rules/FileNameRule.swift | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/Source/SwiftLintFramework/Rules/FileNameRule.swift b/Source/SwiftLintFramework/Rules/FileNameRule.swift index 5b9941f1b..650286195 100644 --- a/Source/SwiftLintFramework/Rules/FileNameRule.swift +++ b/Source/SwiftLintFramework/Rules/FileNameRule.swift @@ -43,16 +43,14 @@ public struct FileNameRule: ConfigurationProviderRule, OptInRule { var typeInFileName = fileName.components(separatedBy: ".").first ?? fileName - if let match = prefixRegex.firstMatch(in: typeInFileName, options: [], range: typeInFileName.fullNSRange) { - if let range = typeInFileName.nsrangeToIndexRange(match.range) { - typeInFileName.removeSubrange(range) - } + if let match = prefixRegex.firstMatch(in: typeInFileName, options: [], range: typeInFileName.fullNSRange), + let range = typeInFileName.nsrangeToIndexRange(match.range) { + typeInFileName.removeSubrange(range) } - if let match = suffixRegex.firstMatch(in: typeInFileName, options: [], range: typeInFileName.fullNSRange) { - if let range = typeInFileName.nsrangeToIndexRange(match.range) { - typeInFileName.removeSubrange(range) - } + if let match = suffixRegex.firstMatch(in: typeInFileName, options: [], range: typeInFileName.fullNSRange), + let range = typeInFileName.nsrangeToIndexRange(match.range) { + typeInFileName.removeSubrange(range) } let allDeclaredTypeNames = file.structure.dictionary.recursiveDeclaredTypeNames() From 03c9e88f3db4595651ec2a7833b9e87d4ddb3727 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cihat=20Gu=CC=88ndu=CC=88z?= Date: Tue, 24 Jul 2018 17:44:59 +0200 Subject: [PATCH 9/9] Add test cases for when both prefix_pattern and custom_pattern are given --- .../FileNameRuleTests.swift | 20 +++++++++++++++++++ .../ExtensionBool+SwiftLint.swift | 6 ++++++ .../SLBoolExtension.swift | 6 ++++++ 3 files changed, 32 insertions(+) create mode 100644 Tests/SwiftLintFrameworkTests/Resources/FileNameRuleFixtures/ExtensionBool+SwiftLint.swift create mode 100644 Tests/SwiftLintFrameworkTests/Resources/FileNameRuleFixtures/SLBoolExtension.swift diff --git a/Tests/SwiftLintFrameworkTests/FileNameRuleTests.swift b/Tests/SwiftLintFrameworkTests/FileNameRuleTests.swift index 388228301..c7a916cc3 100644 --- a/Tests/SwiftLintFrameworkTests/FileNameRuleTests.swift +++ b/Tests/SwiftLintFrameworkTests/FileNameRuleTests.swift @@ -13,6 +13,8 @@ class FileNameRuleTests: XCTestCase { let rule: FileNameRule if let excluded = excludedOverride { rule = try FileNameRule(configuration: ["excluded": excluded]) + } else if let prefixPattern = prefixPattern, let suffixPattern = suffixPattern { + rule = try FileNameRule(configuration: ["prefix_pattern": prefixPattern, "suffix_pattern": suffixPattern]) } else if let prefixPattern = prefixPattern { rule = try FileNameRule(configuration: ["prefix_pattern": prefixPattern]) } else if let suffixPattern = suffixPattern { @@ -64,4 +66,22 @@ class FileNameRuleTests: XCTestCase { XCTAssert(try validate(fileName: "ExtensionBool.swift", prefixPattern: "Extensions?").isEmpty) XCTAssert(try validate(fileName: "ExtensionsBool.swift", prefixPattern: "Extensions?").isEmpty) } + + func testCustomPrefixAndSuffixPatterns() { + XCTAssert( + try validate( + fileName: "SLBoolExtension.swift", + prefixPattern: "SL", + suffixPattern: "Extensions?|\\+.*" + ).isEmpty + ) + + XCTAssert( + try validate( + fileName: "ExtensionBool+SwiftLint.swift", + prefixPattern: "Extensions?", + suffixPattern: "Extensions?|\\+.*" + ).isEmpty + ) + } } diff --git a/Tests/SwiftLintFrameworkTests/Resources/FileNameRuleFixtures/ExtensionBool+SwiftLint.swift b/Tests/SwiftLintFrameworkTests/Resources/FileNameRuleFixtures/ExtensionBool+SwiftLint.swift new file mode 100644 index 000000000..498b59d8d --- /dev/null +++ b/Tests/SwiftLintFrameworkTests/Resources/FileNameRuleFixtures/ExtensionBool+SwiftLint.swift @@ -0,0 +1,6 @@ +struct MyStruct {} +class MyClass {} + +extension Bool { + func toggle() {} +} diff --git a/Tests/SwiftLintFrameworkTests/Resources/FileNameRuleFixtures/SLBoolExtension.swift b/Tests/SwiftLintFrameworkTests/Resources/FileNameRuleFixtures/SLBoolExtension.swift new file mode 100644 index 000000000..498b59d8d --- /dev/null +++ b/Tests/SwiftLintFrameworkTests/Resources/FileNameRuleFixtures/SLBoolExtension.swift @@ -0,0 +1,6 @@ +struct MyStruct {} +class MyClass {} + +extension Bool { + func toggle() {} +}