unreachable-after-break¶
Category: 到達不能コード
Severity: Critical
Triggered by: pyscn analyze, pyscn check
検出内容¶
ループ内で break 文の後に記述された文を検出します。
なぜ問題なのか¶
break はそれを囲むループを即座に終了します。同じブロック内でその後に続くものは一度も実行されません。
よくある原因:
- 誤配置されたインクリメントやアキュムレータの更新 -- 最後のイテレーションで実行されるはずだった。
- 残されたログやクリーンアップ -- リファクタリング中に
breakの下に移動された。 - 制御フローの誤解 -- 作者は
breakがイテレーションの一部だけをスキップすると期待していた。
コードは到達不能なため、テストでカバーできず、内部のバグが表面化することはありません。
例¶
修正例¶
break の前に処理を行うか、デッドコードの文を削除してください。
オプション¶
| Option | Default | Description |
|---|---|---|
dead_code.detect_after_break |
true |
false に設定するとこのルールを無効にします。 |
dead_code.min_severity |
"warning" |
"critical" にするとこの種類の検出結果のみ保持します。"info" にするとより多く表示します。 |
dead_code.ignore_patterns |
[] |
ソース行に対してマッチする正規表現パターン。マッチした場合は抑制されます。 |
参照¶
- 制御フローグラフの到達可能性分析 (
internal/analyzer/dead_code.go)。 - ルールカタログ · Unreachable after continue · Unreachable after return