Skip to content

Commit 046b564

Browse files
committed
fix: Correct zyn_peg action block test assertions
The tests incorrectly expected action body to be parsed as raw_code, but the grammar actually parses "field: value" syntax as action_field entries. Updated tests to verify fields array instead of raw_code.
1 parent aad9f3d commit 046b564

1 file changed

Lines changed: 14 additions & 11 deletions

File tree

crates/zyn_peg/src/ast.rs

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -408,11 +408,12 @@ mod tests {
408408

409409
let action = rule.action.unwrap();
410410
assert_eq!(action.return_type, "TypedExpression");
411-
// Grammar now parses action body as raw_code (more general) rather than structured fields
412-
assert!(action.raw_code.is_some());
413-
let raw = action.raw_code.unwrap();
414-
assert!(raw.contains("expr:"));
415-
assert!(raw.contains("ty:"));
411+
// Grammar parses "field: value" syntax as action_field entries
412+
assert_eq!(action.fields.len(), 2);
413+
assert_eq!(action.fields[0].name, "expr");
414+
assert!(action.fields[0].value.contains("IntLiteral"));
415+
assert_eq!(action.fields[1].name, "ty");
416+
assert!(action.fields[1].value.contains("Type::I32"));
416417
}
417418

418419
#[test]
@@ -434,12 +435,14 @@ mod tests {
434435
assert!(rule.action.is_some());
435436
let action = rule.action.unwrap();
436437
assert_eq!(action.return_type, "TestType");
437-
// Grammar now parses action body as raw_code (more general) rather than structured fields
438-
assert!(action.raw_code.is_some());
439-
let raw = action.raw_code.unwrap();
440-
assert!(raw.contains("decl:"));
441-
assert!(raw.contains("visibility:"));
442-
assert!(raw.contains("ConstDecl"));
438+
// Grammar parses "field: value" syntax as action_field entries
439+
// even with nested braces in the value
440+
assert_eq!(action.fields.len(), 2);
441+
assert_eq!(action.fields[0].name, "decl");
442+
assert!(action.fields[0].value.contains("ConstDecl"));
443+
assert!(action.fields[0].value.contains("intern($2)"));
444+
assert_eq!(action.fields[1].name, "visibility");
445+
assert!(action.fields[1].value.contains("Visibility::Private"));
443446
}
444447
Err(e) => {
445448
panic!("Failed to parse: {}", e);

0 commit comments

Comments
 (0)