Skip to content

refactor: bench fixture が 3 箇所に重複している (264 行 byte-identical) #307

Description

@send

bench_dict() の辞書 fixture が 3 箇所に複製されている:

  • engine/crates/lex-core/benches/candidates.rs
  • engine/crates/lex-core/benches/converter.rs — 上と 264 行 byte-identical
  • engine/crates/lex-core/src/converter/tests/bench.rs — 3 つ目の近似コピー

なぜ重要か

#299 の原因がまさにこの形。38b0148 の Arc<dyn Dictionary> 一括変更が candidates.rs だけを触り converter.rs を飛ばした結果、双子の片方だけシグネチャが変わり、コンパイルが壊れた。誰も気づかないまま 160 日放置された。

現在も、片方にだけ辞書エントリを足すと2 つの bench が別の辞書を測っている状態になり、数値が比較不能になるが、それを検出するゲートは無い。

案

benches/common/mod.rs を作り #[path] mod include で共有する。~260 行削減され、分岐が構造的に不可能になる。

src/converter/tests/bench.rs は #[ignore] の print-only レイテンシ計測で、criterion の converter.rs と役割が重複している。統合時に要否を判断したい。

注意

src/converter/testutil.rs:10 にも 4 つ目の小さい fixture があるが、こちらは正当に別物(correctness テスト用で、いい → 良い のみ等、意図的に内容が異なる)。統合対象に含めないこと。

PR #301 の /code-review max で検出、スコープ外として見送り。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions