Commit Graph

2838 Commits

Author SHA1 Message Date
Marcelo Fabri 8638d23aec Merge pull request #3281 from realm/marcelo/bugfix-3225
Trigger closure_parameter_position in free closures and capture lists
2020-08-05 01:12:22 -07:00
Marcelo Fabri a05a87e7f2 Merge pull request #3258 from SimplyDanny/bugfix-3034
Fix #3034: Allow opening brace directly after another opening brace
2020-08-05 01:02:00 -07:00
Marcelo Fabri 6ec5806a93 Trigger closure_parameter_position in free closures and capture lists 2020-08-05 00:42:27 -07:00
Marcelo Fabri d36743b58a Fix false positive in no_space_in_method_call with multiple trailing closures
Fixes #3259
2020-08-04 21:20:54 -07:00
Marcelo Fabri 5ad5bf2dae Merge pull request #3276 from realm/marcelo/bugfix-3186
Fix false negative in `explicit_acl` rule with Swift 5.2+
2020-08-04 20:53:42 -07:00
Marcelo Fabri b541d253c6 Ignore .varParameter 2020-08-04 20:25:16 -07:00
Marcelo Fabri 1279523798 Ignore varLocal 2020-08-04 16:22:11 -07:00
Marcelo Fabri 0a592a34c9 Fix rule 2020-08-04 15:53:11 -07:00
Keith Smiley cf94d5d8ea Add IBInspectableInExtensionRule (#3174) 2020-08-04 14:15:40 -07:00
Marcelo Fabri 9e5557fbc5 Merge pull request #3160 from realm/mf-computed_accessors_order
Add computed_accessors_order rule
2020-08-04 05:04:45 -07:00
Marcelo Fabri 2d7702fc25 Fix false positive in explicit_acl rule with Swift 5.2+
Fixes #3186
2020-08-04 04:24:52 -07:00
Marcelo Fabri 28bec96b3e Remove a usage of “blacklist” 2020-08-04 04:00:36 -07:00
Tieme van Veen 5f8f9a5a3d Fix false positive UPPERCASE raw_value_for_camel_cased_codable_enum 2020-08-04 03:34:28 -07:00
Marcelo Fabri 240e25232f Add computed_accessors_order rule
Fixes #3158
2020-08-04 03:23:36 -07:00
Marcelo Fabri 063cd3e56c Fix false positive on switch_case_on_newline with Swift 5.3
Fixes #3253
2020-08-04 03:17:23 -07:00
Marcelo Fabri d09a1411c9 Merge branch 'master' into duplicate_imports_configuration 2020-08-04 03:00:38 -07:00
Danny Moesch d08ea47920 Fix #3034: Allow opening brace directly after another opening brace or in
This special case occurs in functions implicitly returning closures.
2020-07-26 12:38:46 +02:00
Noah Gilmore bda1cd56e0 #3167: Fixes false positives for multiline_parameters_brackets and multiline_arguments_brackets (#3171)
* Issue #3167: Fixes false positives for multiline_parameters_brackets and multiline_arguments_brackets

* Add changelog entry

* Fix trailing comma in MultilineParametersBracketsRule nontriggering examples

* Remove header comments from ExtendedStringTests.swift

Co-authored-by: Paul Taykalo <ptaykalo@macpaw.com>
2020-05-29 11:59:02 +03:00
Mateusz Matrejek 8ed7c31161 Fix false positive in with Swift 5.2 (#3112) (#3206) 2020-05-27 22:13:46 +03:00
Yusuke Goto 7da113e932 Fix severity level configuration for duplicate_imports 2020-05-12 17:27:33 +09:00
Keith Smiley e3ba417303 Fix UnusedImportRule breaking transitive imports (#3198) 2020-05-06 15:39:32 -07:00
Keith Smiley bf3da85d8d Improve compile commands error handling (#3188)
* Improve compile commands error handling

Previously when a compile commands file was invalid, it could be hard to
figure out what about it was wrong. This adds some more granular error
handling which hopefully helps provide valid files here.

* fix desc

* Fixups

* Update changelog

* Make what broke clear

* Reword changelog entry

Co-authored-by: JP Simard <jp@jpsim.com>
2020-04-28 09:20:07 -07:00
Cihat Gündüz 5a22b94ec6 Add new file_content_type for PreviewProvider subclasses (#3063)
Fixes #2860.

Co-authored-by: Paul Taykalo <tt.kilew@gmail.com>
2020-04-24 13:21:24 +03:00
JP Simard 889dc49bb6 Remove support for compiling with 5.0.x (#3180)
* Remove support for compiling with 5.0.x

* fixup! Remove support for compiling with 5.0.x
2020-04-14 08:46:23 -07:00
Alexander Chapliuk ef4a37ee1e JUnit reporter for GitLab artifact:report:junit (#3177)
* Add JUnit reporter for GitLab artifact:report:junit

* Added CHANGELOG entry

Co-authored-by: Alexander Chapliuk <2318002+krin-san@users.noreply.github.com>
2020-04-12 17:14:52 +03:00
JP Simard b1c72069ca release 0.39.2 2020-04-03 20:22:50 -07:00
JP Simard da3e1a793b Fix false positives in valid_ibinspectable rule when using Swift 5.2 (#3155)
* Fix false positives in valid_ibinspectable rule when using Swift 5.2

when defining inspectable properties in class extensions with computed
properties.

The following was triggering:

```swift
extension Foo {
  @IBInspectable var color: UIColor {
    set {
      self.bar.textColor = newValue
    }

    get {
      return self.bar.textColor
    }
  }
}
```

Fix by checking to see if an instance property has `set` keywords in its
body when running with Swift 5.2 or later.

* fixup! Fix false positives in valid_ibinspectable rule when using Swift 5.2
2020-03-27 10:04:04 -07:00
JP Simard 85d3425210 Fix attributes rule false positive with Swift 5.2 (#3154)
The following was triggering:

```swift
func printBoolOrTrue(_ expression: @autoclosure () throws -> Bool?) rethrows {
  try print(expression() ?? true)
}
```

Fix by adding the `rethrows` attribute kind to the rule's blacklist.
2020-03-27 09:33:12 -07:00
Marcelo Fabri 0bbbcb0a56 Fix false positives in redundant_objc_attribute with Swift 5.2 (#3152) 2020-03-26 19:23:48 -07:00
Marcelo Fabri 39ee6fe34e Fix false positives on implicit_getter with Swift 5.2+ (#3151)
Fixes #3149
2020-03-26 18:53:36 -07:00
JP Simard c201ae43e6 Simplify regex (#3145)
* Simplify regex

`\w` already includes `_`

* Fix test
2020-03-18 16:23:52 -07:00
JP Simard d10ccacb45 Add unused_import config options to require imports for each module used (#3123)
For example, if `CGFloat` is used in a file where only `UIKit` is imported but not `CoreGraphics`, this will be a violation even if the file previously compiled.

This is because Swift allows referencing some declarations that are only transitively imported.

Enabling the `require_explicit_imports` configuration option will require that the module of every declaration referenced in a source file be explicitly imported.

This will add significant noise to the imports list, but has a few advantages:

1. It will be easier to understand all the dependencies explicitly referenced in a source file.
2. Correcting the `unused_import` rule will no longer introduce compilation errors in files that compiled prior to the correction.

If missing imports are added to a file when correcting it, the `sorted_imports` rule will be automatically run on that file.

If you with to allow some imports to be implicitly importable transitively, you may specify the `allowed_transitive_imports` configuration:

```yaml
unused_import:
  require_explicit_imports: true
  allowed_transitive_imports:
    - module: Foundation
      allowed_transitive_imports:
        - CoreFoundation
        - Darwin
        - ObjectiveC
```
2020-02-22 14:39:07 -08:00
JP Simard 8f22943ca1 release 0.39.1 2020-02-11 13:43:28 -08:00
JP Simard b744cf08f1 Temporarily remove all SwiftSyntax rules and support (#3107)
The new rules introduced in 0.39.0 that depend on SwiftSyntax have been temporarily removed as we work out release packaging issues.

* `prohibited_nan_comparison`
* `return_value_from_void_function`
* `tuple_pattern`
* `void_function_in_ternary`

See https://github.com/realm/SwiftLint/issues/3105 for details.
2020-02-11 13:40:04 -08:00
JP Simard 05a8a854f5 Fix unused_import rule reported locations and corrections (#3106)
When multiple `@testable` imports are involved.

Because we use the `.dotMatchesLineSeparators` regular expression option, the dot was matching across lines when the intention was for it to just match `\w_` characters.
2020-02-11 11:23:27 -08:00
Marcelo Fabri 5a4c3f143d release 0.39.0 2020-02-10 22:19:59 -08:00
Marcelo Fabri 6adf529e7e Fix false positive in empty_string rule with multiline literals (#3101)
Fixes #3100
2020-02-10 08:27:44 -08:00
Marcelo Fabri c5e7bb3d31 Fix PrivateActionRule in Swift 5.2 (#3092) 2020-02-09 22:16:00 -08:00
Marcelo Fabri 4e84992a4a Fix false positive in implicit_getter with Swift 5.2 (#3099)
Fixes #3074
2020-02-09 20:00:53 -08:00
Marcelo Fabri a2fe35d620 Fix false positive in attributes with Swift 5.2 (#3097)
Fixes #3079
2020-02-09 18:17:45 -08:00
Marcelo Fabri 085e8ea0c9 Fix NSObjectPreferIsEqualRuleTests with Swift 5.2 (#3096)
This is not valid Swift code and Swift 5.2 changes the SourceKit response: https://bugs.swift.org/browse/SR-12167
2020-02-09 17:09:57 -08:00
Marcelo Fabri 66848e0186 Enable some opt-in rules in SwiftLint itself (#3095) 2020-02-09 17:07:24 -08:00
Marcelo Fabri b303cd64ea Make SyntaxRules Opt-In (#3094) 2020-02-09 16:20:14 -08:00
Marcelo Fabri 14da706ae9 Remove unused variable in AttributesRule (#3090) 2020-02-09 16:06:27 -08:00
Marcelo Fabri b70b7778df Fix UnownedVariableCaptureRuleTests in Swift 5.2 (#3091)
https://bugs.swift.org/browse/SR-12168
2020-02-09 16:06:11 -08:00
Marcelo Fabri fdd16a6853 Add prohibited_nan_comparison opt-in rule (#3089)
Fixes #2086
2020-02-09 15:13:25 -08:00
Zsolt Kovács ab8cd43e67 Empty count configuration (#3052)
* Add `only_after_dot` configuration option to `empty_count` rule

* Update CHANGELOG.md

* Adopt Example wrapper

* Change severity level to error
2020-02-09 15:12:54 -08:00
Marcelo Fabri 62e273c46c Do not trigger optional_enum_case_matching on _? (#3088)
Fixes #3057
2020-02-08 14:42:55 -08:00
Marcelo Fabri f95768d2e6 Add tuple_pattern opt-in rule (#3086)
* Add `tuple_pattern` opt-in rule

Fixes #2203

* Remove unused import
2020-02-08 13:57:17 -08:00
Marcelo Fabri bdede7b9c1 Remove extra space in optional_enum_case_matching description (#3087) 2020-02-08 13:49:21 -08:00