目的: - Phase 26-H で確立した JoinIR 型システムを実用ループに適用 - minimal_ssa_skip_ws.hako (ネストif + loop(1==1) + break) の変換実装 - トグル制御 (NYASH_JOINIR_EXPERIMENT=1) で実験的に有効化 実装内容: - src/mir/join_ir.rs: lower_skip_ws_to_joinir() 関数追加 (187行) - skip 関数: i_init=0, n=s.length(), loop_step 呼び出し - loop_step 関数: ネストif処理 + 2つのbreak経路 + 再帰呼び出し - 固定ValueId割り当て (3000-3002: skip, 4000-4011: loop_step) - src/tests/mir_joinir_skip_ws.rs: テストインフラ追加 - mir_joinir_skip_ws_auto_lowering: トグル制御実験用 (#[ignore]) - mir_joinir_skip_ws_type_sanity: 常時実行の型妥当性チェック - Stage-3 parser 有効化 (local キーワード対応) - src/tests/mod.rs: テストモジュール登録 検証結果: ✅ トグル ON: JoinIR 変換成功、2関数生成確認 ✅ トグル OFF: 既存テスト影響なし (1 passed; 1 ignored) ✅ 本線テスト: 367 passed (既存失敗は Phase 27.1 と無関係) Phase 26-H との違い: - 複雑度: 簡単 (joinir_min) → 中程度 (skip_ws) - break 箇所: 1箇所 → 2箇所 (ネストif内) - ループ条件: i < 3 → 1 == 1 (定数true) - 変数: i のみ → s, i, n, ch (4変数) 次フェーズ: - Phase 27.2+: MIR 解析による自動検出 (現在は固定実装) - Phase 28: 一般化された変換器実装 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
45 lines
1.7 KiB
Rust
45 lines
1.7 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.1: minimal_ssa_skip_ws 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;
|