SwiftLint0.25.1の変更内容
今日4/9にSwiftLint0.25.1がリリースされました。のでその内容を書こうと思います。ゆうてもリリースノートを日本語訳しただけです。
概要
- Swift 3.2とSwift 3.3をサポートする最後のバージョン
- 破壊的な変更はなし
改善系
- 宣言のアクセスレベルが親と等しい、またはそれより低くなるようにする
LowerACLThanParent
ルールを追加 legacy_constructor
ルールにUIOffsetMake
も適用- 特定の種類の変数を除外できるよう、
explicit_type_interface
ルールでexcluded
パラメータが使えるようになった ""
文字列と比較するより.isEmpty
を使うようにするempty_string
ルールを追加- catch文の中で暗黙的な型宣言しかしてないerror変数に対して警告をする
untyped_error_in_catch
ルールを追加 - SwiftLintのdisable, enable文で
all
キーワードが使えるようにした- ex)
// swiftlint:disable all
- ex)
- 明示的にconfigで
--path
を書いてexcluded
対象にしていたとしても強制的にSwiftLintを実行する--force-exclude
オプションをlint
,autocorrect
コマンドに追加 - optionalなcollectionより空のcollectionを使うようにする
discouraged_optional_collection
ルールを追加
バグ修正系
yoda_condition
ルールで、本当ならerror
になるはずなのにwarning
になってしまう問題を修正、警告レベルではなく警告理由を表示するよう修正- 0.25.0の警告文:
Yoda condition rule Violation: warning (yoda_condition)
- 0.25.1の警告文:
Yoda condition rule Violation: The variable should be placed on the left, the constant on the right of a comparison operator. (yoda_condition)
- 0.25.0の警告文:
todo
ルールの説明文のshould be avoided
をshould be resolved
に変更- dictionaryで
colon
ルールのautocorrectが効かないことがあったのを修正 - サロゲートペアの絵文字を変数名として持つソースでLinuxがクラッシュする問題を修正
- 特にautocorrect時に
legacy_constructor
ルールの信頼性が上がるよう修正 - Preprocessor Macroを使っていた時に
colon
とredundant_void_return
のautocorrectがうまくいかないことがある問題を修正 - キャッシュ保存時にクラッシュすることがある問題を修正
- 関数内、宣言内をautocorrectする時のいくつかのルールの動作を修正
- 修正したファイルが1つであってもautocorrect終了時に出てくるメッセージが"files"になっていたのを修正
- Swift4.1において
attributes
ルールの誤検知を修正