Phase 45: read_quoted_from JoinIR Frontend/Bridge
- Implement lower_read_quoted_pattern() for Guard if + Loop with break + accumulator pattern
- Add T1-T4 Route B E2E tests (all PASS)
- Create phase45_read_quoted_fixture.hako for Route A testing
Phase 46: IfMerge extension for loop-internal if-body reassignment
- Add escape handling: if ch == "\\" { i = i+1; ch = s.substring(...) }
- Use IfMerge to merge i and ch after if-body (speculative execution)
- T5 PASS: "a\"b" → 'a"b' (escape handling works!)
Dev flags:
- HAKO_JOINIR_READ_QUOTED=1: Enable Phase 45 JoinIR route
- HAKO_JOINIR_READ_QUOTED_IFMERGE=1: Enable Phase 46 IfMerge escape handling
Test results (Route B):
- T1: "abc" → 'abc' ✅
- T2: "" → '' ✅
- T3: abc → '' ✅
- T4: xx"def" → 'def' ✅
- T5: "a\"b" → 'a"b' ✅
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
65 lines
3.2 KiB
Rust
65 lines
3.2 KiB
Rust
mod helpers;
|
|
|
|
#[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 joinir_json_min; // Phase 30.x: JoinIR JSON シリアライズテスト
|
|
pub mod joinir_runner_min; // Phase 27.2: JoinIR 実行器 A/B 比較テスト
|
|
pub mod joinir_runner_standalone; // Phase 27-shortterm S-3.2: JoinIR Runner 単体テスト
|
|
pub mod joinir_vm_bridge_skip_ws; // Phase 27-shortterm S-4.4: JoinIR → Rust VM Bridge A/B Test
|
|
pub mod joinir_vm_bridge_trim; // Phase 30.x: JoinIR → Rust VM Bridge A/B Test for trim
|
|
pub mod joinir_vm_bridge_stage1_usingresolver; // Phase 30.x: JoinIR → Rust VM Bridge A/B Test for Stage-1
|
|
pub mod json_lint_stringutils_min_vm; // Phase 21.7++: using StringUtils alias resolution fix
|
|
pub mod mir_breakfinder_ssa;
|
|
pub mod mir_funcscanner_parse_params_trim_min;
|
|
pub mod mir_funcscanner_skip_ws;
|
|
pub mod mir_funcscanner_ssa;
|
|
pub mod mir_funcscanner_trim_min;
|
|
pub mod mir_joinir_funcscanner_append_defs; // Phase 27.14: FuncScannerBox._append_defs JoinIR変換
|
|
pub mod mir_joinir_funcscanner_trim; // Phase 27.1: FuncScannerBox.trim JoinIR変換
|
|
pub mod mir_joinir_if_select; // Phase 33-3: If/Else → Select lowering tests
|
|
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_stage1_using_resolver_min; // Phase 27.12: Stage1UsingResolverBox.resolve_for_source JoinIR変換
|
|
pub mod mir_joinir_stageb_body; // Phase 28: StageBBodyExtractorBox.build_body_src JoinIR変換
|
|
pub mod mir_joinir_stageb_funcscanner; // Phase 28: StageBFuncScannerBox.scan_all_boxes JoinIR変換
|
|
pub mod mir_locals_ssa;
|
|
pub mod mir_loopform_complex;
|
|
pub mod mir_loopform_conditional_reassign;
|
|
pub mod mir_loopform_exit_phi;
|
|
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 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_static_box_naming;
|
|
pub mod mir_value_kind; // Phase 26-A-5: ValueId型安全化統合テスト
|
|
pub mod namingbox_static_method_id; // Phase 21.7++ Phase 1: StaticMethodId structure tests
|
|
pub mod nyash_abi_basic;
|
|
pub mod parser_static_box_members;
|
|
pub mod plugin_hygiene;
|
|
pub mod policy_mutdeny;
|
|
pub mod stage1_cli_entry_ssa_smoke;
|
|
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;
|
|
|
|
// Phase 34-2: JoinIR Frontend (AST→JoinIR)
|
|
pub mod joinir_frontend_if_select;
|
|
pub mod joinir_frontend_if_in_loop_test; // Phase 40-1: If-in-loop variable tracking A/B test
|
|
pub mod phase40_array_ext_filter_test; // Phase 40-1.1: array_ext.filter A/B test (collect_assigned_vars deletion)
|
|
pub mod phase41_nested_if_merge_test; // Phase 41-4: NestedIfMerge A/B test (parse_loop)
|