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 + }