Commit Graph
61 Commits
Author SHA1 Message Date
Danny Mösch e4e22b5b8a Improve discarded_notification_center_observer rule (#5371) 2023-12-04 22:06:12 +01:00
Ben P 544e1c60c7 Add a new non_optional_string_data_conversion rule (#5264) 2023-12-02 07:33:22 -05:00
Kishikawa Katsumi 0d54c2a10d Rewrite opening_brace rule with SwiftSyntax (#5164) 2023-12-02 12:21:50 +01:00
Leonardo de Sousa Rodrigues eecb44db6e Add option to make unneeded_override rule affect initializers (#5270) 2023-11-30 21:35:53 +01:00
Danny Mösch 8cb2cf9f85 Rewrite let_var_whitespace rule with SwiftSyntax (#5367) 2023-11-29 22:45:06 +01:00
Danny Mösch eab0af851c Rewrite identifier_name rule with SwiftSyntax (#5354) 2023-11-19 12:47:41 +01:00
Danny Mösch 9cd47401c0 Ignore functions with default parameters in unneeded_override rule (#5356) 2023-11-16 22:44:10 +01:00
Danny Mösch 1603f4ab55 Remove filter that is assuming classes cannot be nested inside of extensions (#5344) 2023-11-11 14:28:16 +01:00
JP Simard 6e3bfc1a45 Fix more strict concurrency warnings (#5324)
These aren't enough to enable `-strict-concurrency=complete` for more
modules, but they address some warnings with that flag on and reduces
the scope of what remains to be migrated.
2023-11-01 12:41:54 -04:00
JP Simard 3eb3772022 Compile with -strict-concurrency=complete (#5320)
* Compile with `-strict-concurrency=complete`

Only in Bazel for now, because this is considered an unsafe flag in
SwiftPM which would lead to warnings for downstream consumers of
SwiftLint using SwiftPM.

Some imports of SwiftSyntax need the `@preconcurrency` annotation until
https://github.com/apple/swift-syntax/pull/2322 is available in a
release.

The following SwiftLint libraries have `-strict-concurrency=complete`
applied:

* SwiftLintCoreMacros
* SwiftLintBuiltInRules
* SwiftLintExtraRules

The following SwiftLint libraries don't have the flag applied and need
to be migrated:

* SwiftLintCore
* swiftlint (CLI target)

So really the rules and macros are now being compiled with
`-strict-concurrency=complete`, but the core infrastructure of SwiftLint
is not.

Still, given that Swift 6 will eventually make these warnings errors by
default, it's good to prevent issues from creeping in earlier rather
than later.

* Add CI job to build with strict concurrency
2023-11-01 15:20:40 +00:00
Marcelo Fabri 5466f96818 Conform BlanketDisableCommandRule to SourceKitFreeRule (#5306) 2023-10-28 23:39:14 -07:00
Marcelo Fabri 491cf5e227 Conform InvalidSwiftLintCommandRule to SourceKitFreeRule (#5304) 2023-10-28 21:57:59 -07:00
Danny Mösch 4c0f33782c Check disabled regions for all syntax types in parent rewriter class (#5292) 2023-10-23 15:34:51 -04:00
Danny Mösch 5ec1de0312 Generate makeRewriter optionally (#5281) 2023-10-17 15:19:19 -04:00
Danny Mösch 57632017e4 Introduce parent class for rewriters (#5282) 2023-10-17 18:55:02 +02:00
Danny Mösch 40bd97038a Support arbitrary configurations in @SwiftSyntaxRule (#5275)
Almost all rules based on SwiftSyntax can be set up now by just adding
`@SwiftSyntaxRule` to the rule struct.
2023-10-16 19:34:43 +02:00
Danny Mösch 2ed1fc2f27 Let all rules be configurable (#5274) 2023-10-12 17:30:45 +02:00
Danny Mösch 58928b7e40 Enforce any on existential types (#5273)
This makes syntactically clear which types are rather expensive.
2023-10-12 08:37:23 +02:00
Danny Mösch 6438c77b96 Harmonize rule extensions (#5272) 2023-10-11 19:39:38 +02:00
Danny Mösch f6e5f778fc Configure expression folding by argument of @SwiftSyntaxRule macro (#5255) 2023-10-03 07:16:33 -04:00
JP Simard 591154091e Introduce @SwiftSyntaxRule & @Fold macros (#5253)
These macros remove some of the boilerplate involved when writing rules.

This change also adds test infrastructure for the macros used within
SwiftLint.
2023-10-02 18:43:16 -04:00
Danny Mösch 2433e7b5bf Make use of macros to generate configuration parsing code (#5250) 2023-10-02 22:35:24 +02:00
John Szumski 696e19df33 Fix false positives in unused_import rule for constructors defined in transitive modules (#5246) 2023-10-01 11:19:41 +02:00
Danny Mösch 68b27d8310 Inline conditional examples requiring Swift 5.9 (#5249) 2023-09-30 09:56:54 -04:00
John Szumski 8517e9c8b7 Preserve @_exported import statements in unused_imports (#5242) 2023-09-30 08:47:17 -04:00
Tatsuyuki Kobayashi 1bbce6c1b0 Add only configuration option to todo rule (#5233) 2023-09-26 14:45:04 -04:00
Danny Mösch 075017cba5 Merge modifier extensions into one (#5234) 2023-09-24 23:50:10 +02:00
Danny Mösch 35a78815d1 Update SwiftSyntax (#5198) 2023-09-14 22:49:55 +02:00
Tatsuyuki Kobayashi b609a4bebb Fix false positive in test_case_accessibility (#5212) 2023-09-08 10:12:55 -07:00
Martin Redington 8c68e80118 Check character before command in invalid_swiftlint_command rule (#5204) 2023-09-05 21:40:27 +02:00
Matt Thompson b54d957426 Let private_swiftui_state rule also apply to @StateObject (#5200) 2023-09-01 17:16:02 -04:00
Danny Mösch b281a8d33a Update SwiftSyntax (#5168) 2023-08-30 22:57:10 +02:00
Martin Redington f8225073cd Remove Image(systemName:) special case (#5175) 2023-08-30 18:08:40 +02:00
Marcelo Fabri c6a5d3632c Fix false positive in ns_number_init_as_function_reference (#5176)
Fixes #5172
2023-08-28 11:47:44 -07:00
Danny Mösch ef494f7428 Deprecate parts of private_unit_test rule's configuration (#5102) 2023-08-28 14:15:21 -04:00
Danny Mösch 1f65377f9c Remove more superfluous newline characters from examples (#5159) 2023-08-06 23:44:52 +02:00
Danny Mösch f10fc3056b Remove superfluous newline characters from examples (#5158) 2023-08-06 12:23:26 -04:00
Danny Mösch 85c4a3a03d Revert "Allow to initialize Examples by string literals (#5154)" (#5155)
This reverts commit 56461c3ab4.
2023-08-04 00:03:26 +02:00
Danny Mösch 56461c3ab4 Allow to initialize Examples by string literals (#5154) 2023-08-03 23:03:41 +02:00
Matt Thompson 0537f3af75 Add new private_swiftui_state_property rule (#4769) 2023-07-28 16:08:00 -04:00
Keith Smiley b3189aa2d7 Add unneeded_override rule (#5139)
This rule flags functions where the only thing they do is call their
super function and therefore could be omitted. For example:

```swift
override func foo() {
    super.foo()
}
```

This can get pretty complex since there are a lot of slight variations
the subclasses' functions can call the superclasses' functions with, but
this covers many of the cases. Ideally this would handle variable
overrides too but it doesn't currently.
2023-07-26 15:36:30 -04:00
Danny Mösch 77c5a3cc75 Fix false positive in control_statement rule rewriting it with SwiftSyntax (#5141) 2023-07-23 17:48:40 -04:00
Kasra Babaei 6e2bd8c059 Skip initializers in private_subject rule (#5096) 2023-07-04 21:45:17 +02:00
Danny Mösch 02ba97225f Remove redundant initializer (#5095) 2023-07-03 23:24:43 +02:00
Danny Mösch ed223e32e8 Handle static spec methods in quick_discouraged_call rule (#5073) 2023-06-23 18:59:01 +02:00
woxtu 21fbf59c2c Rewrite todo rule with SwiftSyntax (#5040) 2023-06-19 10:28:51 -04:00
Danny Mösch a2ba0a0626 Omit "Rule" in configuration names (#5024) 2023-05-20 04:39:04 -04:00
Danny Mösch 3f039f26d5 Connect configs with their referencing rules to have some context in error logging (#5017)
With the binding of configurations to their associated rule types
"unknown configuration" errors can be made more specific mentioning
also the rule's identifier in the printed message.
2023-05-19 20:58:24 +02:00
Danny Mösch d938b2d3c3 Specify default options in configurations only (#5020) 2023-05-18 17:21:30 +02:00
Danny Mösch 7fd22e0d6e Use SeverityBasedRuleConfiguration where possible (#5019) 2023-05-18 16:04:20 +02:00