diff --git a/crates/aiken-lang/src/format.rs b/crates/aiken-lang/src/format.rs
index 8d0f09b9..0952e099 100644
--- a/crates/aiken-lang/src/format.rs
+++ b/crates/aiken-lang/src/format.rs
@@ -998,14 +998,12 @@ impl<'comments> Formatter<'comments> {
wrap_args(elems.iter().map(|e| (self.wrap_expr(e), false))).group()
}
- UntypedExpr::Pair { fst, snd, .. } => "Pair"
- .to_doc()
- .append("(")
- .append(self.expr(fst, false))
- .append(break_(",", ", "))
- .append(self.expr(snd, false))
- .append(")")
- .group(),
+ UntypedExpr::Pair { fst, snd, .. } => {
+ let elems = [fst, snd];
+ "Pair"
+ .to_doc()
+ .append(wrap_args(elems.iter().map(|e| (self.wrap_expr(e), false))).group())
+ }
UntypedExpr::TupleIndex { index, tuple, .. } => {
let suffix = Ordinal(*index + 1).suffix().to_doc();
diff --git a/crates/aiken-lang/src/tests/format.rs b/crates/aiken-lang/src/tests/format.rs
index 9cde42dc..d2015390 100644
--- a/crates/aiken-lang/src/tests/format.rs
+++ b/crates/aiken-lang/src/tests/format.rs
@@ -1116,3 +1116,27 @@ fn format_long_imports() {
"#
);
}
+
+#[test]
+fn format_long_pair() {
+ assert_format!(
+ r#"
+ test foo() {
+ expect(Some([
+ Pair(GovernanceActionId { transaction: only7s, proposal_procedure: 2 },
+ Abstain),
+ ])) == whatever
+
+ expect(Some([
+ Foo(GovernanceActionId { transaction: only7s, proposal_procedure: 2 },
+ Abstain),
+ ])) == whatever
+
+ expect(Some([
+ (GovernanceActionId { transaction: only7s, proposal_procedure: 2 },
+ Abstain),
+ ])) == whatever
+ }
+ "#
+ );
+}
diff --git a/crates/aiken-lang/src/tests/snapshots/format_long_pair.snap b/crates/aiken-lang/src/tests/snapshots/format_long_pair.snap
new file mode 100644
index 00000000..165e7c00
--- /dev/null
+++ b/crates/aiken-lang/src/tests/snapshots/format_long_pair.snap
@@ -0,0 +1,35 @@
+---
+source: crates/aiken-lang/src/tests/format.rs
+description: "Code:\n\ntest foo() {\n expect(Some([\n Pair(GovernanceActionId { transaction: only7s, proposal_procedure: 2 },\n Abstain),\n ])) == whatever\n\n expect(Some([\n Foo(GovernanceActionId { transaction: only7s, proposal_procedure: 2 },\n Abstain),\n ])) == whatever\n\n expect(Some([\n (GovernanceActionId { transaction: only7s, proposal_procedure: 2 },\n Abstain),\n ])) == whatever\n}\n"
+---
+test foo() {
+ expect
+ Some(
+ [
+ Pair(
+ GovernanceActionId { transaction: only7s, proposal_procedure: 2 },
+ Abstain,
+ ),
+ ],
+ ) == whatever
+
+ expect
+ Some(
+ [
+ Foo(
+ GovernanceActionId { transaction: only7s, proposal_procedure: 2 },
+ Abstain,
+ ),
+ ],
+ ) == whatever
+
+ expect
+ Some(
+ [
+ (
+ GovernanceActionId { transaction: only7s, proposal_procedure: 2 },
+ Abstain,
+ ),
+ ],
+ ) == whatever
+}
diff --git a/examples/acceptance_tests/script_context/v3/validators/proposing_all.ak b/examples/acceptance_tests/script_context/v3/validators/proposing_all.ak
index ef11d5b7..7ca68dde 100644
--- a/examples/acceptance_tests/script_context/v3/validators/proposing_all.ak
+++ b/examples/acceptance_tests/script_context/v3/validators/proposing_all.ak
@@ -46,10 +46,12 @@ validator {
expect
TreasuryWithdrawal {
beneficiaries: [
- Pair(VerificationKey(
- #"11111111111111111111111111111111111111111111111111111111",
+ Pair(
+ VerificationKey(
+ #"11111111111111111111111111111111111111111111111111111111",
+ ),
+ 1_000_000,
),
- 1_000_000),
],
guardrails: None,
} == action
diff --git a/examples/acceptance_tests/script_context/v3/validators/simple_spend.ak b/examples/acceptance_tests/script_context/v3/validators/simple_spend.ak
index 8973fc83..fe628189 100644
--- a/examples/acceptance_tests/script_context/v3/validators/simple_spend.ak
+++ b/examples/acceptance_tests/script_context/v3/validators/simple_spend.ak
@@ -75,13 +75,15 @@ fn assert_inputs(inputs: List) {
fn assert_redeemers(redeemers: Pairs) {
expect
[
- Pair(Spend(
- OutputReference {
- transaction_id: #"0000000000000000000000000000000000000000000000000000000000000000",
- output_index: 0,
- },
+ Pair(
+ Spend(
+ OutputReference {
+ transaction_id: #"0000000000000000000000000000000000000000000000000000000000000000",
+ output_index: 0,
+ },
+ ),
+ void(),
),
- void()),
] == redeemers
Void
}
diff --git a/examples/acceptance_tests/script_context/v3/validators/voting.ak b/examples/acceptance_tests/script_context/v3/validators/voting.ak
index 9641316c..1c14ed9e 100644
--- a/examples/acceptance_tests/script_context/v3/validators/voting.ak
+++ b/examples/acceptance_tests/script_context/v3/validators/voting.ak
@@ -35,14 +35,18 @@ validator {
expect
Some(
- Pair(ConstitutionalCommitteeMember(VerificationKey(only0s)),
- [
- Pair(GovernanceActionId {
- transaction: only9s,
- proposal_procedure: 152,
- },
- No),
- ]),
+ Pair(
+ ConstitutionalCommitteeMember(VerificationKey(only0s)),
+ [
+ Pair(
+ GovernanceActionId {
+ transaction: only9s,
+ proposal_procedure: 152,
+ },
+ No,
+ ),
+ ],
+ ),
) == list.at(votes, 1)
expect Some(Pair(DelegateRepresentative(Script(..)), [_, ..])) =
@@ -50,15 +54,23 @@ validator {
expect
Some(
- Pair(DelegateRepresentative(VerificationKey(only0s)),
- [
- Pair(GovernanceActionId { transaction: only7s, proposal_procedure: 2 },
- Abstain),
- Pair(GovernanceActionId { transaction: only8s, proposal_procedure: 1 },
- Abstain),
- Pair(GovernanceActionId { transaction: only9s, proposal_procedure: 0 },
- Abstain),
- ]),
+ Pair(
+ DelegateRepresentative(VerificationKey(only0s)),
+ [
+ Pair(
+ GovernanceActionId { transaction: only7s, proposal_procedure: 2 },
+ Abstain,
+ ),
+ Pair(
+ GovernanceActionId { transaction: only8s, proposal_procedure: 1 },
+ Abstain,
+ ),
+ Pair(
+ GovernanceActionId { transaction: only9s, proposal_procedure: 0 },
+ Abstain,
+ ),
+ ],
+ ),
) == list.at(votes, 3)
expect Some(Pair(StakePool(pool_id), [_, ..])) = list.at(votes, 4)