From aeaec6bcd8023762e8e40817c6beec0ea0d86cf4 Mon Sep 17 00:00:00 2001 From: rvcas Date: Tue, 13 Jun 2023 00:18:32 -0400 Subject: [PATCH] fix: record format when module select - instead of checking the container we need to check the FieldAccess label. closes #601 --- crates/aiken-lang/src/format.rs | 4 +--- crates/aiken-lang/src/tests/format.rs | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/crates/aiken-lang/src/format.rs b/crates/aiken-lang/src/format.rs index 5fb377c3..7bd755aa 100644 --- a/crates/aiken-lang/src/format.rs +++ b/crates/aiken-lang/src/format.rs @@ -946,9 +946,7 @@ impl<'comments> Formatter<'comments> { fn call<'a>(&mut self, fun: &'a UntypedExpr, args: &'a [CallArg]) -> Document<'a> { let is_constr = match fun { UntypedExpr::Var { name, .. } => name[0..1].chars().all(|c| c.is_uppercase()), - UntypedExpr::FieldAccess { container, .. } => { - matches!(&**container, UntypedExpr::Var { name, .. } if name[0..1].chars().all(|c| c.is_uppercase())) - } + UntypedExpr::FieldAccess { label, .. } => label[0..1].chars().all(|c| c.is_uppercase()), _ => false, }; diff --git a/crates/aiken-lang/src/tests/format.rs b/crates/aiken-lang/src/tests/format.rs index 8a0ca4d4..9154e290 100644 --- a/crates/aiken-lang/src/tests/format.rs +++ b/crates/aiken-lang/src/tests/format.rs @@ -34,6 +34,23 @@ fn comment_at_end_of_file() { assert_fmt(input, output); } +#[test] +fn module_select_record() { + let input = indoc! { r#" + fn smth() { + let a = foo.Foo { bar: 1 } + } + "#}; + + let output = indoc! { r#" + fn smth() { + let a = foo.Foo { bar: 1 } + } + "#}; + + assert_fmt(input, output); +} + #[test] fn test_format_if() { let src = indoc! {r#"