とりあえずやってみればいいじゃん

とりあえずやってみればいいじゃん

エンジニア関連のことについてつらつら書くブログ

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
  • 明示的に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)
  • todoルールの説明文のshould be avoidedshould be resolvedに変更
  • dictionaryでcolonルールのautocorrectが効かないことがあったのを修正
  • サロゲートペアの絵文字を変数名として持つソースでLinuxがクラッシュする問題を修正
  • 特にautocorrect時にlegacy_constructorルールの信頼性が上がるよう修正
  • Preprocessor Macroを使っていた時にcolonredundant_void_returnのautocorrectがうまくいかないことがある問題を修正
  • キャッシュ保存時にクラッシュすることがある問題を修正
  • 関数内、宣言内をautocorrectする時のいくつかのルールの動作を修正
  • 修正したファイルが1つであってもautocorrect終了時に出てくるメッセージが"files"になっていたのを修正
  • Swift4.1においてattributesルールの誤検知を修正