Skip to content

feat: 末尾の省略可能引数削除を内部呼び出し証拠で互換分類する - #36

Merged
owayo merged 1 commit into
mainfrom
feat/issue-31-trailing-optional-removal
Oct 8, 2026
Merged

owayo merged 1 commit into
mainfrom
feat/issue-31-trailing-optional-removal

Conversation

@owayo

@owayo owayo commented Oct 8, 2026

Copy link
Copy Markdown
Owner

公開関数から末尾の省略可能な引数を削除すると、利用側がその引数を渡していなくても api.mod と impact が hook を停止していました。TS/TSX の一意なトップレベル関数について、残る引数と明示された戻り値型が同じで、確認した直接呼び出しがすべて新しい引数数以内なら compatible_modified / mod_compat(reason: trailing_optional_params_removed)へ分類します。

  • 宣言名・検証済みの import 名・直接 call の位置だけを許可します。コメントを除いて引数を数え、明示的 undefined、spread、関数値、型からの参照、shadow、他の契約変更を区別します。
  • 名前検索と独立に依存経路を確認し、再export・別名・動的 import/require・eval 等・escaped identifier・曖昧な解決・解析不足では従来の判定を維持します。解析一覧をキャッシュし、ファイル数・容量・AST ノード数の上限も設けます。
  • この分類の実際の呼び出し参照を impact_info に保持します。既存の引数追加や他の起点の blocking は維持します。保証範囲は解析対象の静的な内部呼び出しで、外部利用や実行時動作の同値性を保証しません。

検証: spacing 再現の修正前 FAIL、修正後の新規・既存単体36件と CLI10件の全46件 PASS。fmt、default all-targets clippy、diff、AST impact / review 検査も PASS。全体の最終検査はこの PR の GitHub Actions で行います。

Closes #31

TypeScript と TSX の一意なトップレベル関数について、残存引数と明示的な戻り値型、
全参照と静的な依存経路を AST で確認してから省略可能な末尾引数削除を分類する。
実際の呼び出し証拠を情報として保持し、未知の参照や動的実行は既存の判定を維持する。
解析一覧を検出処理の寿命に閉じたキャッシュへまとめ、処理量の上限を設ける。
内部呼び出しの互換性と外部利用・実行時動作の保証を区別して説明する。
@owayo owayo self-assigned this Oct 8, 2026
@coderabbitai

coderabbitai Bot commented Oct 8, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 947a0117-2ccd-47f4-9746-a60c78cc744d
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@owayo
owayo merged commit 6106ece into main Oct 8, 2026
9 checks passed
@owayo
owayo deleted the feat/issue-31-trailing-optional-removal branch October 8, 2026 08:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant