From 814157dd7b058a6f31d6f011cd9e6baa71b49051 Mon Sep 17 00:00:00 2001 From: KtorZ Date: Thu, 30 Mar 2023 13:02:20 +0200 Subject: [PATCH] Fix formatter inconsistency with record spread patterns. --- crates/aiken-lang/src/format.rs | 2 +- crates/aiken-lang/src/tests/format.rs | 22 ++++++++++++++++++++++ examples/acceptance_tests/055/lib/tests.ak | 2 +- examples/acceptance_tests/067/lib/tests.ak | 2 +- examples/acceptance_tests/074/lib/tests.ak | 2 +- 5 files changed, 26 insertions(+), 4 deletions(-) diff --git a/crates/aiken-lang/src/format.rs b/crates/aiken-lang/src/format.rs index 29111630..3b916b0d 100644 --- a/crates/aiken-lang/src/format.rs +++ b/crates/aiken-lang/src/format.rs @@ -839,7 +839,7 @@ impl<'comments> Formatter<'comments> { if args.is_empty() && with_spread { if is_record { - name.append("{..}") + name.append(" { .. }") } else { name.append("(..)") } diff --git a/crates/aiken-lang/src/tests/format.rs b/crates/aiken-lang/src/tests/format.rs index b68412ee..b3c21e92 100644 --- a/crates/aiken-lang/src/tests/format.rs +++ b/crates/aiken-lang/src/tests/format.rs @@ -748,3 +748,25 @@ fn format_pipe_fn() { assert_fmt(src, expected); } + +#[test] +fn match_record() { + let src = indoc! { r#" + fn foo() { + when bar is { + Bar { a, b, c } -> + Void + Bar { a, .. } -> + Void + Bar { .. } -> + Void + Bar(a, b, c) -> + Void + Bar(..) -> + Void + } + } + "#}; + + assert_fmt(src, src); +} diff --git a/examples/acceptance_tests/055/lib/tests.ak b/examples/acceptance_tests/055/lib/tests.ak index ecd7a37d..1b886ac0 100644 --- a/examples/acceptance_tests/055/lib/tests.ak +++ b/examples/acceptance_tests/055/lib/tests.ak @@ -32,7 +32,7 @@ pub fn size(t: MerkleTree) -> Int { when t is { Empty -> 0 - Leaf{..} -> + Leaf { .. } -> 1 Node { left, right, .. } -> size(left) + size(right) diff --git a/examples/acceptance_tests/067/lib/tests.ak b/examples/acceptance_tests/067/lib/tests.ak index 5cb12569..d098dec8 100644 --- a/examples/acceptance_tests/067/lib/tests.ak +++ b/examples/acceptance_tests/067/lib/tests.ak @@ -139,7 +139,7 @@ pub fn size(self: MerkleTree) -> Int { when self is { Empty -> 0 - Leaf{..} -> + Leaf { .. } -> 1 Node { left, right, .. } -> size(left) + size(right) diff --git a/examples/acceptance_tests/074/lib/tests.ak b/examples/acceptance_tests/074/lib/tests.ak index f5391455..d82f81c3 100644 --- a/examples/acceptance_tests/074/lib/tests.ak +++ b/examples/acceptance_tests/074/lib/tests.ak @@ -44,7 +44,7 @@ pub fn size(self: MerkleTree) -> Int { when self is { Empty -> 0 - Leaf{..} -> + Leaf { .. } -> 1 Node { left, right, .. } -> size(left) + size(right)