refactor(joinir): Refactor-A+B - Null literal + ContinueReturn 一般化
## Refactor-A: Null literal 対応 - expr.rs に "Null" case 追加 - ConstValue::Null → JoinValue::Unit マッピング ## Refactor-B: ContinueReturn 一般化 - 複数 return-if 許可(同値のみ) - json_values_equal() ヘルパー追加 - Fail-Fast: 異なる値は即エラー ## Fixtures & Tests - null_literal_min.program.json (return null) - continue_return_multi_min.program.json (複数 return null) - +1 test (vm_bridge 検証) Impact: - normalized_dev: 63→64 passed (+1) - lib: 993 passed (回帰なし) - 箱化スコア: 5/5 (全項目満点) - 実ループ(_parse_array/_parse_object) 準備完了 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@ -21,6 +21,9 @@ pub enum NormalizedDevFixture {
|
||||
PatternContinueReturnMin,
|
||||
/// Parse String Composite minimal (Phase 90 P0)
|
||||
ParseStringCompositeMin,
|
||||
/// Refactor-B: ContinueReturn multi minimal (multiple return-if with same value)
|
||||
/// Note: This also tests Null literal support from Refactor-A
|
||||
ContinueReturnMultiMin,
|
||||
}
|
||||
|
||||
impl NormalizedDevFixture {
|
||||
@ -36,6 +39,7 @@ impl NormalizedDevFixture {
|
||||
}
|
||||
Self::PatternContinueReturnMin => "pattern_continue_return_minimal",
|
||||
Self::ParseStringCompositeMin => "parse_string_composite_minimal",
|
||||
Self::ContinueReturnMultiMin => "continue_return_multi_minimal",
|
||||
}
|
||||
}
|
||||
|
||||
@ -57,6 +61,9 @@ impl NormalizedDevFixture {
|
||||
Self::ParseStringCompositeMin => {
|
||||
"../../../../docs/private/roadmap2/phases/normalized_dev/fixtures/parse_string_composite_min.program.json"
|
||||
}
|
||||
Self::ContinueReturnMultiMin => {
|
||||
"../../../../docs/private/roadmap2/phases/normalized_dev/fixtures/continue_return_multi_min.program.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -68,7 +75,8 @@ impl NormalizedDevFixture {
|
||||
| Self::Pattern4JsonParserParseArrayContinueSkipWs
|
||||
| Self::Pattern4JsonParserParseObjectContinueSkipWs
|
||||
| Self::PatternContinueReturnMin
|
||||
| Self::ParseStringCompositeMin => FunctionRoute::LoopFrontend,
|
||||
| Self::ParseStringCompositeMin
|
||||
| Self::ContinueReturnMultiMin => FunctionRoute::LoopFrontend,
|
||||
}
|
||||
}
|
||||
|
||||
@ -93,6 +101,9 @@ impl NormalizedDevFixture {
|
||||
Self::ParseStringCompositeMin => include_str!(
|
||||
"../../../../docs/private/roadmap2/phases/normalized_dev/fixtures/parse_string_composite_min.program.json"
|
||||
),
|
||||
Self::ContinueReturnMultiMin => include_str!(
|
||||
"../../../../docs/private/roadmap2/phases/normalized_dev/fixtures/continue_return_multi_min.program.json"
|
||||
),
|
||||
}
|
||||
}
|
||||
|
||||
@ -122,6 +133,7 @@ pub const ALL_DEV_FIXTURES: &[NormalizedDevFixture] = &[
|
||||
NormalizedDevFixture::Pattern4JsonParserParseObjectContinueSkipWs,
|
||||
NormalizedDevFixture::PatternContinueReturnMin,
|
||||
NormalizedDevFixture::ParseStringCompositeMin,
|
||||
NormalizedDevFixture::ContinueReturnMultiMin,
|
||||
];
|
||||
|
||||
#[cfg(test)]
|
||||
@ -156,7 +168,7 @@ mod tests {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_pattern4_fixtures_route_to_loop_frontend() {
|
||||
fn test_all_fixtures_route_to_loop_frontend() {
|
||||
for fixture in ALL_DEV_FIXTURES {
|
||||
assert_eq!(
|
||||
fixture.route(),
|
||||
|
||||
Reference in New Issue
Block a user