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ルールの誤検知を修正