diff --git a/asm-to-pil/src/vm_to_constrained.rs b/asm-to-pil/src/vm_to_constrained.rs index 33d4d540f..c2dd382ad 100644 --- a/asm-to-pil/src/vm_to_constrained.rs +++ b/asm-to-pil/src/vm_to_constrained.rs @@ -1289,7 +1289,7 @@ machine Main { } trait ArraySum { - array_sum: T[4 + 1] -> DoubleOpt, + array_sum: T[4 + 1] -> DoubleOpt; } } diff --git a/ast/src/parsed/display.rs b/ast/src/parsed/display.rs index 9b199b1e7..046dd61ad 100644 --- a/ast/src/parsed/display.rs +++ b/ast/src/parsed/display.rs @@ -584,7 +584,7 @@ impl Display for TraitDeclaration { name = self.name, type_vars = self.type_vars.iter().format(", "), functions = indent( - self.functions.iter().map(|m| format!("{m},\n")).format(""), + self.functions.iter().map(|m| format!("{m};\n")).format(""), 1 ) ) diff --git a/parser/src/lib.rs b/parser/src/lib.rs index 186a942e0..0010cb1a4 100644 --- a/parser/src/lib.rs +++ b/parser/src/lib.rs @@ -485,12 +485,12 @@ namespace N(2); fn parse_trait() { let input = r#" trait Add { - add: T, T -> T, + add: T, T -> T; }"#; let expected = r#" trait Add { - add: T, T -> T, + add: T, T -> T; }"#; let printed = format!("{}", parse(Some("input"), input).unwrap_err_to_stderr()); @@ -501,12 +501,12 @@ namespace N(2); fn parse_trait_multi_params() { let input = r#" trait Add { - add: T, T -> Q, + add: T, T -> Q; }"#; let expected = r#" trait Add { - add: T, T -> Q, + add: T, T -> Q; }"#; let printed = format!("{}", parse(Some("input"), input).unwrap_err_to_stderr()); @@ -518,7 +518,7 @@ namespace N(2); fn parse_trait_no_type_vars() { let input = r#" trait Add { - add: int, int -> int, + add: int, int -> int; }"#; let _ = format!("{}", parse(Some("input"), input).unwrap_err_to_stderr()); @@ -528,12 +528,12 @@ namespace N(2); fn parse_trait_multi_params2() { let input = r#" trait Iterator { - next: S -> (S, Option), + next: S -> (S, Option); }"#; let expected = r#" trait Iterator { - next: S -> (S, Option), + next: S -> (S, Option); }"#; let printed = format!("{}", parse(Some("input"), input).unwrap_err_to_stderr()); diff --git a/parser/src/powdr.lalrpop b/parser/src/powdr.lalrpop index eb65e6119..bf22e4683 100644 --- a/parser/src/powdr.lalrpop +++ b/parser/src/powdr.lalrpop @@ -691,11 +691,11 @@ TraitVars: Vec = { TraitFunctions: Vec> = { => vec![], - "," )*> "," => { list.push(end); list } + ";" )*> ";" => { list.push(end); list } } TraitFunction: TraitFunction = { - ":" "->" => TraitFunction { name, ty: Type::Function(FunctionType{params, value}) } + ":" => TraitFunction { name, ty } } diff --git a/pil-analyzer/tests/parse_display.rs b/pil-analyzer/tests/parse_display.rs index fd3455bab..e31d42115 100644 --- a/pil-analyzer/tests/parse_display.rs +++ b/pil-analyzer/tests/parse_display.rs @@ -718,12 +718,12 @@ namespace T(8); #[test] fn trait_def() { let input = "trait Add { - add: T, T -> Q, + add: T, T -> Q; } "; let expected = " trait Add { - add: T, T -> Q, + add: T, T -> Q; } "; @@ -734,12 +734,12 @@ fn trait_def() { #[test] fn array_type_trait() { let input = "trait ArraySum { - array_sum: T[4 + 1] -> T, + array_sum: T[4 + 1] -> T; } "; let expected = " trait ArraySum { - array_sum: T[5] -> T, + array_sum: T[5] -> T; } "; @@ -751,7 +751,7 @@ fn array_type_trait() { #[should_panic = "Duplicate symbol definition: Add"] fn trait_enum_collisions() { let input = "trait Add { - add: T, T -> Q, + add: T, T -> Q; } enum Add { X diff --git a/test_data/asm/trait_parsing.asm b/test_data/asm/trait_parsing.asm index 99d2579c2..1ce21e363 100644 --- a/test_data/asm/trait_parsing.asm +++ b/test_data/asm/trait_parsing.asm @@ -5,7 +5,7 @@ mod types { } trait ArraySum { - array_sum: T[4 + 1] -> DoubleOpt, + array_sum: T[4 + 1] -> DoubleOpt; } }