Files
hakorune/src/tests/mod.rs
nyash-codex 96086f485d feat(joinir): Phase 27.1 - FuncScanner.trim JoinIR変換実装完了
目的:
- minimal_ssa_skip_ws に続き、FuncScannerBox.trim/1 ループを JoinIR 変換対象に追加
- Phase 27.0 の実用化拡張(より簡単なループで動作確認)

実装内容:
1. lower_funcscanner_trim_to_joinir() 関数追加 (src/mir/join_ir.rs:515-770)
   - trim_main + loop_step の2関数生成
   - 固定 ValueId 割り当て (5000-5018, 6000-6018)
   - OR 条件の chain 処理 (ch == " " || "\t" || "\n" || "\r")

2. BinOpKind 拡張 (src/mir/join_ir.rs:147-154)
   - Or/And variant 追加(論理演算対応)
   - Phase 27.1 実験的拡張として最小限の変更

3. テストインフラ追加 (src/tests/mir_joinir_funcscanner_trim.rs)
   - auto_lowering テスト: #[ignore] + NYASH_JOINIR_EXPERIMENT=1 トグル
   - type_sanity テスト: 常時実行の軽量テスト

4. ドキュメント完備 (docs/private/roadmap2/phases/phase-27.1-joinir/)
   - IMPLEMENTATION_LOG.md: 技術メモ + BinOpKind 拡張決定の記録
   - TASKS.md: 実装ステップ進捗管理

検証結果:
-  ビルド成功 (リリースビルド 55.75s)
-  type_sanity テスト PASS
-  既存 JoinIR テスト全て PASS (mir_joinir_min, mir_joinir_skip_ws)
-  トグル OFF で本線影響なし確認済み

トグル制御:
- NYASH_JOINIR_EXPERIMENT=1 で JoinIR 変換有効化
- デフォルトは従来の MIR/LoopForm 維持

次のステップ:
- C-2: トグル ON での動作確認
- D-1: ベースライン緑度確認
- E-1: README 更新

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 06:29:22 +09:00

46 lines
1.8 KiB
Rust

#[cfg(feature = "aot-plan-import")]
pub mod aot_plan_import;
pub mod box_tests;
pub mod host_reverse_slot;
pub mod identical_exec;
pub mod identical_exec_collections;
pub mod identical_exec_instance;
pub mod identical_exec_string;
pub mod mir_breakfinder_ssa;
pub mod mir_funcscanner_skip_ws;
pub mod mir_funcscanner_parse_params_trim_min;
pub mod mir_funcscanner_trim_min;
pub mod mir_funcscanner_ssa;
pub mod mir_joinir_min; // Phase 26-H: JoinIR型定義妥当性確認
pub mod mir_joinir_skip_ws; // Phase 27.0: minimal_ssa_skip_ws JoinIR変換
pub mod mir_joinir_funcscanner_trim; // Phase 27.1: FuncScannerBox.trim JoinIR変換
pub mod mir_locals_ssa;
pub mod mir_loopform_conditional_reassign;
pub mod mir_loopform_exit_phi;
pub mod mir_loopform_complex;
pub mod mir_static_box_naming;
pub mod mir_stage1_cli_emit_program_min;
pub mod mir_stage1_staticcompiler_receiver; // Phase 25.1: StaticCompiler receiver型推論バグ回帰防止
pub mod mir_stage1_using_resolver_verify;
pub mod json_lint_stringutils_min_vm; // Phase 21.7++: using StringUtils alias resolution fix
pub mod namingbox_static_method_id; // Phase 21.7++ Phase 1: StaticMethodId structure tests
pub mod stage1_cli_entry_ssa_smoke;
pub mod mir_stageb_like_args_length;
pub mod mir_stageb_loop_break_continue;
pub mod mir_stageb_string_utils_skip_ws; // Phase 25.1: skip_ws Void < 0 TypeError 再現
pub mod mir_value_kind; // Phase 26-A-5: ValueId型安全化統合テスト
pub mod nyash_abi_basic;
pub mod parser_static_box_members;
pub mod plugin_hygiene;
pub mod policy_mutdeny;
pub mod sugar_basic_test;
pub mod sugar_coalesce_test;
pub mod sugar_comp_assign_test;
pub mod sugar_pipeline_test;
pub mod sugar_range_test;
pub mod sugar_safe_access_test;
pub mod typebox_tlv_diff;
pub mod vtable_map_ext;
pub mod vtable_strict;
pub mod vtable_string;