diff --git a/CHANGELOG.md b/CHANGELOG.md
index 57de98ff..2c0f2149 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,7 @@
### Changed
- **aiken-project**: Fix documentation link-tree generation messing up with modules when re-inserting the same module. @KtorZ
+- **aiken-lang**: Fix formatter adding extra unnecessary newlines after literal lists clause values or assignments. @KtorZ
### Removed
@@ -28,6 +29,7 @@
- **aiken-lang**: Adjust reification of `String` to be shown as plain UTF-8 text strings (instead of hex-encoded byte array). @KtorZ
- **aiken-lang**: Fix formatting of long if-condition over multiline. @KtorZ & @Microproofs
- **aiken-lang**: Fix formatting of standalone logical binary chains (`and` & `or`) in functions. @KtorZ
+- **uplc**: Fix script context generation failure on missing datum when evaluating transactions. @solidsnakedev
### Removed
diff --git a/crates/aiken-lang/src/format.rs b/crates/aiken-lang/src/format.rs
index 2c07e43f..a9d24430 100644
--- a/crates/aiken-lang/src/format.rs
+++ b/crates/aiken-lang/src/format.rs
@@ -1889,9 +1889,7 @@ impl<'comments> Formatter<'comments> {
.force_break(),
),
- UntypedExpr::Fn { .. } | UntypedExpr::List { .. } => {
- line().append(self.expr(expr, false)).nest(INDENT).group()
- }
+ UntypedExpr::Fn { .. } => line().append(self.expr(expr, false)).nest(INDENT).group(),
UntypedExpr::When { .. } => line().append(self.expr(expr, false)).nest(INDENT).group(),
@@ -1976,6 +1974,7 @@ impl<'comments> Formatter<'comments> {
} else {
|| break_(",", ", ")
};
+
let elements_document =
join(elements.iter().map(|e| self.pattern(e)), break_style());
let tail = tail.as_ref().map(|e| {
diff --git a/crates/aiken-lang/src/tests/format.rs b/crates/aiken-lang/src/tests/format.rs
index 87eff8d2..5a47510f 100644
--- a/crates/aiken-lang/src/tests/format.rs
+++ b/crates/aiken-lang/src/tests/format.rs
@@ -298,6 +298,7 @@ fn format_nested_when_if() {
when xs is {
[] ->
[]
+ [x] -> [1, 2, 3]
[_x, ..rest] ->
drop(rest, n - 1)
}
diff --git a/crates/aiken-lang/src/tests/snapshots/format_long_standalone_literal.snap b/crates/aiken-lang/src/tests/snapshots/format_long_standalone_literal.snap
index 21be67de..1db5fbb3 100644
--- a/crates/aiken-lang/src/tests/snapshots/format_long_standalone_literal.snap
+++ b/crates/aiken-lang/src/tests/snapshots/format_long_standalone_literal.snap
@@ -3,8 +3,7 @@ source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\ntest foo() {\n let left =\n [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n let right =\n [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0,\n ]\n left == right\n}\n"
---
test foo() {
- let left =
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
+ let left = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
let right =
[
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
diff --git a/crates/aiken-lang/src/tests/snapshots/format_nested_when_if.snap b/crates/aiken-lang/src/tests/snapshots/format_nested_when_if.snap
index 57d5b5f7..f3718a47 100644
--- a/crates/aiken-lang/src/tests/snapshots/format_nested_when_if.snap
+++ b/crates/aiken-lang/src/tests/snapshots/format_nested_when_if.snap
@@ -1,14 +1,14 @@
---
source: crates/aiken-lang/src/tests/format.rs
-description: "Code:\n\npub fn drop(xs: List, n: Int) -> List {\n if n <= 0 {\n xs\n } else {\n when xs is {\n [] ->\n []\n [_x, ..rest] ->\n drop(rest, n - 1)\n }\n }\n}\n"
+description: "Code:\n\npub fn drop(xs: List, n: Int) -> List {\n if n <= 0 {\n xs\n } else {\n when xs is {\n [] ->\n []\n [x] -> [1, 2, 3]\n [_x, ..rest] ->\n drop(rest, n - 1)\n }\n }\n}\n"
---
pub fn drop(xs: List, n: Int) -> List {
if n <= 0 {
xs
} else {
when xs is {
- [] ->
- []
+ [] -> []
+ [x] -> [1, 2, 3]
[_x, ..rest] -> drop(rest, n - 1)
}
}