From 616dec8f03843017a6c665b3de89c7efba2a28e4 Mon Sep 17 00:00:00 2001 From: KtorZ Date: Sun, 8 Sep 2024 16:23:41 +0200 Subject: [PATCH] Fix formatter getting rid of curly braces around multi-line constants. --- CHANGELOG.md | 1 + crates/aiken-lang/src/format.rs | 2 +- crates/aiken-lang/src/tests/format.rs | 12 ++++++++++++ .../src/tests/snapshots/multiline_constant.snap | 8 ++++++++ 4 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 crates/aiken-lang/src/tests/snapshots/multiline_constant.snap diff --git a/CHANGELOG.md b/CHANGELOG.md index 25e3c985..4640505a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ - **aiken-lang**: Fix list-pattern needlessly formatting over multiple lines. @KtorZ - **aiken-lang**: Fix formatter on long alternative patterns spanning over multiple lines. @KtorZ - **aiken-lang**: Fix needed parentheses under trace-if-false operator for todo, fail, unop & pipelines; removed when formatting. @KtorZ +- **aiken-lang**: Fix formatter removing curly braces around multi-line constants. It's fine to not have curly braces, but it's the Aiken signature after all. @KtorZ ### Removed diff --git a/crates/aiken-lang/src/format.rs b/crates/aiken-lang/src/format.rs index 5a39ccd8..b2e8a688 100644 --- a/crates/aiken-lang/src/format.rs +++ b/crates/aiken-lang/src/format.rs @@ -295,7 +295,7 @@ impl<'comments> Formatter<'comments> { head.append(" =") .append(break_("", " ")) - .append(self.expr(value, true)) + .append(self.expr(value, false)) .nest(INDENT) .group() } diff --git a/crates/aiken-lang/src/tests/format.rs b/crates/aiken-lang/src/tests/format.rs index 6aa2cdd8..d5295250 100644 --- a/crates/aiken-lang/src/tests/format.rs +++ b/crates/aiken-lang/src/tests/format.rs @@ -1340,3 +1340,15 @@ fn trace_if_false_fail() { "# ); } + +#[test] +fn multiline_constant() { + assert_format!( + r#" + const n: Int = { + let x = 0 + x + 1 + } + "# + ); +} diff --git a/crates/aiken-lang/src/tests/snapshots/multiline_constant.snap b/crates/aiken-lang/src/tests/snapshots/multiline_constant.snap new file mode 100644 index 00000000..6e9e665d --- /dev/null +++ b/crates/aiken-lang/src/tests/snapshots/multiline_constant.snap @@ -0,0 +1,8 @@ +--- +source: crates/aiken-lang/src/tests/format.rs +description: "Code:\n\nconst n: Int = {\n let x = 0\n x + 1\n}\n" +--- +const n: Int = { + let x = 0 + x + 1 + }