From 093a8ec60eaacd1b307447545e166a40e037436d Mon Sep 17 00:00:00 2001 From: Ary Borenszweig Date: Wed, 19 Feb 2025 17:00:26 -0300 Subject: [PATCH] fix: don't let nargo fmt produce multiple trailing newlines (#7444) --- noir_stdlib/src/ecdsa_secp256k1.nr | 1 - noir_stdlib/src/meta/op.nr | 1 - noir_stdlib/src/ops/arith.nr | 1 - noir_stdlib/src/ops/bit.nr | 1 - .../brillig_integer_binary_operations/src/main.nr | 1 - .../compile_success_empty/comptime_as_field/src/main.nr | 1 - .../compile_success_empty/comptime_fmt_strings/src/main.nr | 1 - .../compile_success_empty/comptime_from_field/src/main.nr | 1 - .../compile_success_empty/comptime_traits/src/main.nr | 1 - .../conditional_regression_to_bits/src/main.nr | 1 - .../eq_derivation_with_numeric_generics/src/main.nr | 1 - .../trait_override_implementation/src/main.nr | 1 - .../src/main.nr | 1 - test_programs/execution_success/bit_and/src/main.nr | 1 - test_programs/execution_success/bool_not/src/main.nr | 1 - test_programs/execution_success/bool_or/src/main.nr | 1 - .../brillig_calls_conditionals/src/main.nr | 1 - .../execution_success/brillig_nested_arrays/src/main.nr | 1 - .../execution_success/brillig_pedersen/src/main.nr | 1 - test_programs/execution_success/cast_bool/src/main.nr | 1 - .../conditional_regression_661/src/main.nr | 1 - test_programs/execution_success/databus/src/main.nr | 1 - .../execution_success/fold_complex_outputs/src/main.nr | 1 - .../src/main.nr | 1 - test_programs/execution_success/if_else_chain/src/main.nr | 1 - .../execution_success/nested_array_dynamic/src/main.nr | 1 - .../nested_arrays_from_brillig/src/main.nr | 1 - test_programs/execution_success/pedersen_check/src/main.nr | 1 - .../execution_success/pedersen_commitment/src/main.nr | 1 - test_programs/execution_success/pedersen_hash/src/main.nr | 1 - .../reference_only_used_as_alias/src/main.nr | 1 - .../execution_success/slice_dynamic_index/src/main.nr | 1 - test_programs/execution_success/slice_regex/src/main.nr | 1 - .../execution_success/struct_fields_ordering/src/main.nr | 1 - test_programs/execution_success/submodules/src/main.nr | 1 - test_programs/execution_success/u128/src/main.nr | 1 - .../execution_success/wrapping_operations/src/main.nr | 1 - test_programs/noir_test_success/bounded_vec/src/main.nr | 1 - .../noir_test_success/brillig_overflow_checks/src/main.nr | 1 - test_programs/noir_test_success/mock_oracle/src/main.nr | 1 - tooling/nargo_fmt/src/formatter.rs | 1 + tooling/nargo_fmt/src/formatter/buffer.rs | 7 +++++++ tooling/nargo_fmt/src/formatter/comments_and_whitespace.rs | 7 +++++++ tooling/nargo_fmt/src/formatter/function.rs | 1 - tooling/nargo_fmt/tests/expected/databus.nr | 1 - tooling/nargo_fmt/tests/expected/fn.nr | 1 - tooling/nargo_fmt/tests/expected/ignore.nr | 1 - tooling/nargo_fmt/tests/expected/trait.nr | 1 - tooling/nargo_fmt/tests/expected/trait_alias.nr | 1 - tooling/nargo_fmt/tests/expected/unsafe.nr | 1 - 50 files changed, 15 insertions(+), 47 deletions(-) diff --git a/noir_stdlib/src/ecdsa_secp256k1.nr b/noir_stdlib/src/ecdsa_secp256k1.nr index ec39e999715..1b0f32343b9 100644 --- a/noir_stdlib/src/ecdsa_secp256k1.nr +++ b/noir_stdlib/src/ecdsa_secp256k1.nr @@ -19,4 +19,3 @@ pub fn verify_signature_slice( ) -> bool // docs:end:ecdsa_secp256k1_slice {} - diff --git a/noir_stdlib/src/meta/op.nr b/noir_stdlib/src/meta/op.nr index 67c9b4cdb64..7dc846e3318 100644 --- a/noir_stdlib/src/meta/op.nr +++ b/noir_stdlib/src/meta/op.nr @@ -222,4 +222,3 @@ impl BinaryOp { } } } - diff --git a/noir_stdlib/src/ops/arith.nr b/noir_stdlib/src/ops/arith.nr index 195ae777580..5a152da67df 100644 --- a/noir_stdlib/src/ops/arith.nr +++ b/noir_stdlib/src/ops/arith.nr @@ -321,4 +321,3 @@ impl Neg for i64 { } } // docs:end:neg-trait-impls - diff --git a/noir_stdlib/src/ops/bit.nr b/noir_stdlib/src/ops/bit.nr index 70c52ac38b0..7a9a8f6c300 100644 --- a/noir_stdlib/src/ops/bit.nr +++ b/noir_stdlib/src/ops/bit.nr @@ -341,4 +341,3 @@ impl Shr for i64 { self >> other } } - diff --git a/test_programs/compile_success_empty/brillig_integer_binary_operations/src/main.nr b/test_programs/compile_success_empty/brillig_integer_binary_operations/src/main.nr index 032fbf457b6..2c02582c14d 100644 --- a/test_programs/compile_success_empty/brillig_integer_binary_operations/src/main.nr +++ b/test_programs/compile_success_empty/brillig_integer_binary_operations/src/main.nr @@ -77,4 +77,3 @@ unconstrained fn shr(x: u32, y: u8) -> u32 { unconstrained fn shl(x: u32, y: u8) -> u32 { x << y } - diff --git a/test_programs/compile_success_empty/comptime_as_field/src/main.nr b/test_programs/compile_success_empty/comptime_as_field/src/main.nr index e13db54b80b..f5871bbed81 100644 --- a/test_programs/compile_success_empty/comptime_as_field/src/main.nr +++ b/test_programs/compile_success_empty/comptime_as_field/src/main.nr @@ -3,4 +3,3 @@ fn main() { let _: U128 = U128::from_integer(1); } } - diff --git a/test_programs/compile_success_empty/comptime_fmt_strings/src/main.nr b/test_programs/compile_success_empty/comptime_fmt_strings/src/main.nr index 8cdd15aaa0e..adee6e6fe93 100644 --- a/test_programs/compile_success_empty/comptime_fmt_strings/src/main.nr +++ b/test_programs/compile_success_empty/comptime_fmt_strings/src/main.nr @@ -26,4 +26,3 @@ fn hello_world() {} comptime fn call(x: Quoted) -> Quoted { quote { $x() } } - diff --git a/test_programs/compile_success_empty/comptime_from_field/src/main.nr b/test_programs/compile_success_empty/comptime_from_field/src/main.nr index 722c5c7eb32..028722b94b2 100644 --- a/test_programs/compile_success_empty/comptime_from_field/src/main.nr +++ b/test_programs/compile_success_empty/comptime_from_field/src/main.nr @@ -3,4 +3,3 @@ fn main() { let _: Field = U128::from_hex("0x0").to_integer(); } } - diff --git a/test_programs/compile_success_empty/comptime_traits/src/main.nr b/test_programs/compile_success_empty/comptime_traits/src/main.nr index 11025d45024..5573e8ad798 100644 --- a/test_programs/compile_success_empty/comptime_traits/src/main.nr +++ b/test_programs/compile_success_empty/comptime_traits/src/main.nr @@ -31,4 +31,3 @@ pub fn neg_at_comptime() { let _result = -value; } } - diff --git a/test_programs/compile_success_empty/conditional_regression_to_bits/src/main.nr b/test_programs/compile_success_empty/conditional_regression_to_bits/src/main.nr index dd80d2c576f..ef0eb4cf068 100644 --- a/test_programs/compile_success_empty/conditional_regression_to_bits/src/main.nr +++ b/test_programs/compile_success_empty/conditional_regression_to_bits/src/main.nr @@ -23,4 +23,3 @@ fn main() { } assert(c1 == 1); } - diff --git a/test_programs/compile_success_empty/eq_derivation_with_numeric_generics/src/main.nr b/test_programs/compile_success_empty/eq_derivation_with_numeric_generics/src/main.nr index 3307aeb15ad..e2f3cb46d11 100644 --- a/test_programs/compile_success_empty/eq_derivation_with_numeric_generics/src/main.nr +++ b/test_programs/compile_success_empty/eq_derivation_with_numeric_generics/src/main.nr @@ -9,4 +9,3 @@ fn main() { let bar = Foo { a: [0; 10], b: 28 }; assert(foo != bar); } - diff --git a/test_programs/compile_success_empty/trait_override_implementation/src/main.nr b/test_programs/compile_success_empty/trait_override_implementation/src/main.nr index 12a625b0843..589232d00d8 100644 --- a/test_programs/compile_success_empty/trait_override_implementation/src/main.nr +++ b/test_programs/compile_success_empty/trait_override_implementation/src/main.nr @@ -80,4 +80,3 @@ fn main(x: Field) { assert(bar_mut.f4() == 4, "14"); assert(bar_mut.f5() == 50, "15"); } - diff --git a/test_programs/compile_success_empty/unquote_trait_constraint_in_trait_impl_position/src/main.nr b/test_programs/compile_success_empty/unquote_trait_constraint_in_trait_impl_position/src/main.nr index 92ddf99f1c0..8bf3863bbe3 100644 --- a/test_programs/compile_success_empty/unquote_trait_constraint_in_trait_impl_position/src/main.nr +++ b/test_programs/compile_success_empty/unquote_trait_constraint_in_trait_impl_position/src/main.nr @@ -21,4 +21,3 @@ comptime fn foo(_: FunctionDefinition) -> Quoted { } } } - diff --git a/test_programs/execution_success/bit_and/src/main.nr b/test_programs/execution_success/bit_and/src/main.nr index 5a0aa17e3ed..2e2ce62def7 100644 --- a/test_programs/execution_success/bit_and/src/main.nr +++ b/test_programs/execution_success/bit_and/src/main.nr @@ -13,4 +13,3 @@ fn main(x: Field, y: Field, a: Field, b: Field) { let b_as_u8 = b as u8; assert((a_as_u8 & b_as_u8) == a_as_u8); } - diff --git a/test_programs/execution_success/bool_not/src/main.nr b/test_programs/execution_success/bool_not/src/main.nr index 935d8cc074d..d848225b3f2 100644 --- a/test_programs/execution_success/bool_not/src/main.nr +++ b/test_programs/execution_success/bool_not/src/main.nr @@ -1,4 +1,3 @@ fn main(x: u1) { assert(!x == 0); } - diff --git a/test_programs/execution_success/bool_or/src/main.nr b/test_programs/execution_success/bool_or/src/main.nr index 6cb959e61e6..87bbb757fbc 100644 --- a/test_programs/execution_success/bool_or/src/main.nr +++ b/test_programs/execution_success/bool_or/src/main.nr @@ -3,4 +3,3 @@ fn main(x: u1, y: u1) { assert(x | y | x == 1); } - diff --git a/test_programs/execution_success/brillig_calls_conditionals/src/main.nr b/test_programs/execution_success/brillig_calls_conditionals/src/main.nr index e8bce638ebe..8d0e78bd623 100644 --- a/test_programs/execution_success/brillig_calls_conditionals/src/main.nr +++ b/test_programs/execution_success/brillig_calls_conditionals/src/main.nr @@ -36,4 +36,3 @@ unconstrained fn entry_point(x: u32) -> u32 { result } - diff --git a/test_programs/execution_success/brillig_nested_arrays/src/main.nr b/test_programs/execution_success/brillig_nested_arrays/src/main.nr index 3f5e5a0f8eb..7835bca55a7 100644 --- a/test_programs/execution_success/brillig_nested_arrays/src/main.nr +++ b/test_programs/execution_success/brillig_nested_arrays/src/main.nr @@ -41,4 +41,3 @@ fn main(x: Field, y: Field) { create_and_assert_inside_brillig(x, y); } } - diff --git a/test_programs/execution_success/brillig_pedersen/src/main.nr b/test_programs/execution_success/brillig_pedersen/src/main.nr index 55f81882bd4..e4d2d2d0e78 100644 --- a/test_programs/execution_success/brillig_pedersen/src/main.nr +++ b/test_programs/execution_success/brillig_pedersen/src/main.nr @@ -24,4 +24,3 @@ unconstrained fn main( let hash = std::hash::pedersen_commitment_with_separator([state], 0); assert(std::hash::pedersen_commitment_with_separator([43], 0).x == hash.x); } - diff --git a/test_programs/execution_success/cast_bool/src/main.nr b/test_programs/execution_success/cast_bool/src/main.nr index 422d3b98f83..f6742fb62f3 100644 --- a/test_programs/execution_success/cast_bool/src/main.nr +++ b/test_programs/execution_success/cast_bool/src/main.nr @@ -3,4 +3,3 @@ fn main(x: Field, y: Field) { let t = z as u8; assert(t == 1); } - diff --git a/test_programs/execution_success/conditional_regression_661/src/main.nr b/test_programs/execution_success/conditional_regression_661/src/main.nr index 1036acc6da4..a8459515634 100644 --- a/test_programs/execution_success/conditional_regression_661/src/main.nr +++ b/test_programs/execution_success/conditional_regression_661/src/main.nr @@ -25,4 +25,3 @@ fn issue_661_bar(a: [u32; 4]) -> [u32; 4] { b[0] = a[0] + 1; b } - diff --git a/test_programs/execution_success/databus/src/main.nr b/test_programs/execution_success/databus/src/main.nr index ecc7794cf9e..02c2a7d0683 100644 --- a/test_programs/execution_success/databus/src/main.nr +++ b/test_programs/execution_success/databus/src/main.nr @@ -9,4 +9,3 @@ fn main(mut x: u32, y: call_data(0) u32, z: call_data(0) [u32; 4]) -> return_dat unconstrained fn foo(x: u32) -> u32 { x + 1 } - diff --git a/test_programs/execution_success/fold_complex_outputs/src/main.nr b/test_programs/execution_success/fold_complex_outputs/src/main.nr index b433c8b416c..b83a88c4a7d 100644 --- a/test_programs/execution_success/fold_complex_outputs/src/main.nr +++ b/test_programs/execution_success/fold_complex_outputs/src/main.nr @@ -69,4 +69,3 @@ fn map_fields(mut input: ParentStruct) -> ParentStruct { input } - diff --git a/test_programs/execution_success/global_var_entry_point_used_in_another_entry/src/main.nr b/test_programs/execution_success/global_var_entry_point_used_in_another_entry/src/main.nr index 364c27cc4ab..d5741677271 100644 --- a/test_programs/execution_success/global_var_entry_point_used_in_another_entry/src/main.nr +++ b/test_programs/execution_success/global_var_entry_point_used_in_another_entry/src/main.nr @@ -41,4 +41,3 @@ unconstrained fn entry_point_one_diff_global(x: Field, y: Field) { let z = THREE + x + y; assert(z == 4); } - diff --git a/test_programs/execution_success/if_else_chain/src/main.nr b/test_programs/execution_success/if_else_chain/src/main.nr index 2705d5b3111..2c80acd273c 100644 --- a/test_programs/execution_success/if_else_chain/src/main.nr +++ b/test_programs/execution_success/if_else_chain/src/main.nr @@ -12,4 +12,3 @@ fn main(a: u32, mut c: [u32; 4]) { assert(c[0] == 10); } } - diff --git a/test_programs/execution_success/nested_array_dynamic/src/main.nr b/test_programs/execution_success/nested_array_dynamic/src/main.nr index 2c53822d6b9..4ac6b4124ae 100644 --- a/test_programs/execution_success/nested_array_dynamic/src/main.nr +++ b/test_programs/execution_success/nested_array_dynamic/src/main.nr @@ -73,4 +73,3 @@ fn main(mut x: [Foo; 4], y: pub Field) { foo_parents[y - 2].foos[y - 3].b = foo_parents[y - 2].foos[y - 2].b; assert(foo_parents[1].foos[0].b == [20, 19, 5000]); } - diff --git a/test_programs/execution_success/nested_arrays_from_brillig/src/main.nr b/test_programs/execution_success/nested_arrays_from_brillig/src/main.nr index 387454b9e21..66021005ce3 100644 --- a/test_programs/execution_success/nested_arrays_from_brillig/src/main.nr +++ b/test_programs/execution_success/nested_arrays_from_brillig/src/main.nr @@ -24,4 +24,3 @@ fn main(values: [Field; 6]) { let notes = unsafe { create_inside_brillig(values) }; assert(access_nested(notes) == (2 + 4 + 3 + 1)); } - diff --git a/test_programs/execution_success/pedersen_check/src/main.nr b/test_programs/execution_success/pedersen_check/src/main.nr index c71b2b570da..00afa4b8e27 100644 --- a/test_programs/execution_success/pedersen_check/src/main.nr +++ b/test_programs/execution_success/pedersen_check/src/main.nr @@ -17,4 +17,3 @@ fn main(x: Field, y: Field, salt: Field, out_x: Field, out_y: Field, out_hash: F let hash = std::hash::pedersen_commitment([state]); assert(std::hash::pedersen_commitment([43]).x == hash.x); } - diff --git a/test_programs/execution_success/pedersen_commitment/src/main.nr b/test_programs/execution_success/pedersen_commitment/src/main.nr index c2225edcdf1..e9a7ea4816f 100644 --- a/test_programs/execution_success/pedersen_commitment/src/main.nr +++ b/test_programs/execution_success/pedersen_commitment/src/main.nr @@ -5,4 +5,3 @@ fn main(x: Field, y: Field, expected_commitment: std::embedded_curve_ops::Embedd assert_eq(commitment.y, expected_commitment.y); } // docs:end:pedersen-commitment - diff --git a/test_programs/execution_success/pedersen_hash/src/main.nr b/test_programs/execution_success/pedersen_hash/src/main.nr index de981d44bca..c55e947930b 100644 --- a/test_programs/execution_success/pedersen_hash/src/main.nr +++ b/test_programs/execution_success/pedersen_hash/src/main.nr @@ -4,4 +4,3 @@ fn main(x: Field, y: Field, expected_hash: Field) { assert_eq(hash, expected_hash); } // docs:end:pedersen-hash - diff --git a/test_programs/execution_success/reference_only_used_as_alias/src/main.nr b/test_programs/execution_success/reference_only_used_as_alias/src/main.nr index c8dd38d9aca..cf84d103020 100644 --- a/test_programs/execution_success/reference_only_used_as_alias/src/main.nr +++ b/test_programs/execution_success/reference_only_used_as_alias/src/main.nr @@ -90,4 +90,3 @@ fn main(input: [Field; 4], randomness: Field, context_input: u32) { let event0 = ExampleEvent0 { value0: input[0], value1: input[1] }; event0.emit(encode_event_with_randomness(&mut context, randomness)); } - diff --git a/test_programs/execution_success/slice_dynamic_index/src/main.nr b/test_programs/execution_success/slice_dynamic_index/src/main.nr index 2ab633eb98c..c6fd64d5805 100644 --- a/test_programs/execution_success/slice_dynamic_index/src/main.nr +++ b/test_programs/execution_success/slice_dynamic_index/src/main.nr @@ -305,4 +305,3 @@ fn dynamic_slice_merge_push_then_pop(mut slice: [Field], x: Field, y: Field) { let (_, elem) = slice.pop_back(); assert(elem == y); } - diff --git a/test_programs/execution_success/slice_regex/src/main.nr b/test_programs/execution_success/slice_regex/src/main.nr index 67901f10f29..ba20fdd61f1 100644 --- a/test_programs/execution_success/slice_regex/src/main.nr +++ b/test_programs/execution_success/slice_regex/src/main.nr @@ -805,4 +805,3 @@ fn main() { // assert_eq(result.leftover.len, 0); // // adapted URL parser: (https?:\/\/)?([\da-c.\-]+)\.([a-c.]+)([\/\w \.\-]*)*\/? // } - diff --git a/test_programs/execution_success/struct_fields_ordering/src/main.nr b/test_programs/execution_success/struct_fields_ordering/src/main.nr index 1a2e2d462e2..fe26ac31424 100644 --- a/test_programs/execution_success/struct_fields_ordering/src/main.nr +++ b/test_programs/execution_success/struct_fields_ordering/src/main.nr @@ -9,4 +9,3 @@ fn main(y: pub myStruct) { assert(y.foo == 5); assert(y.bar == 7); } - diff --git a/test_programs/execution_success/submodules/src/main.nr b/test_programs/execution_success/submodules/src/main.nr index f937af74627..b58e64b4990 100644 --- a/test_programs/execution_success/submodules/src/main.nr +++ b/test_programs/execution_success/submodules/src/main.nr @@ -12,4 +12,3 @@ mod my_submodule { pub fn my_helper() {} } - diff --git a/test_programs/execution_success/u128/src/main.nr b/test_programs/execution_success/u128/src/main.nr index 4ea93437814..56ac5b995d9 100644 --- a/test_programs/execution_success/u128/src/main.nr +++ b/test_programs/execution_success/u128/src/main.nr @@ -39,4 +39,3 @@ fn main(mut x: u32, y: u32, z: u32, big_int: U128, hexa: str<7>) { assert(shift << 127 == U128::from_integer(0)); assert(U128::from_integer(3).to_integer() == 3); } - diff --git a/test_programs/execution_success/wrapping_operations/src/main.nr b/test_programs/execution_success/wrapping_operations/src/main.nr index d8345884c82..0c4be84a765 100644 --- a/test_programs/execution_success/wrapping_operations/src/main.nr +++ b/test_programs/execution_success/wrapping_operations/src/main.nr @@ -3,4 +3,3 @@ fn main(x: u8, y: u8) { assert(std::wrapping_add(y, 1) == x); assert(std::wrapping_mul(y, y) == 1); } - diff --git a/test_programs/noir_test_success/bounded_vec/src/main.nr b/test_programs/noir_test_success/bounded_vec/src/main.nr index fa2c55e6934..cfd985a55ea 100644 --- a/test_programs/noir_test_success/bounded_vec/src/main.nr +++ b/test_programs/noir_test_success/bounded_vec/src/main.nr @@ -269,4 +269,3 @@ fn test_vec_any_not_default() { vec.extend_from_array([2, 4]); assert(!vec.any(|v| v == default_value)); } - diff --git a/test_programs/noir_test_success/brillig_overflow_checks/src/main.nr b/test_programs/noir_test_success/brillig_overflow_checks/src/main.nr index 019f757591e..de6fd15f068 100644 --- a/test_programs/noir_test_success/brillig_overflow_checks/src/main.nr +++ b/test_programs/noir_test_success/brillig_overflow_checks/src/main.nr @@ -20,4 +20,3 @@ unconstrained fn test_overflow_mul() { let b: u8 = 2; assert_eq(a * b, 0); } - diff --git a/test_programs/noir_test_success/mock_oracle/src/main.nr b/test_programs/noir_test_success/mock_oracle/src/main.nr index bdffd62bb80..3bde9a0b3ef 100644 --- a/test_programs/noir_test_success/mock_oracle/src/main.nr +++ b/test_programs/noir_test_success/mock_oracle/src/main.nr @@ -151,4 +151,3 @@ fn test_mock_struct_field() { assert_eq(20, struct_field(point, another_array)); } } - diff --git a/tooling/nargo_fmt/src/formatter.rs b/tooling/nargo_fmt/src/formatter.rs index 2a8adb3fb28..0a57fbad5e2 100644 --- a/tooling/nargo_fmt/src/formatter.rs +++ b/tooling/nargo_fmt/src/formatter.rs @@ -107,6 +107,7 @@ impl<'a> Formatter<'a> { ); self.format_parsed_module(parsed_module, self.ignore_next); + self.buffer.trim_multiple_newlines(); } pub(crate) fn format_parsed_module(&mut self, parsed_module: ParsedModule, ignore_next: bool) { diff --git a/tooling/nargo_fmt/src/formatter/buffer.rs b/tooling/nargo_fmt/src/formatter/buffer.rs index 3e4bebef608..0440f30eb58 100644 --- a/tooling/nargo_fmt/src/formatter/buffer.rs +++ b/tooling/nargo_fmt/src/formatter/buffer.rs @@ -56,6 +56,13 @@ impl Buffer { } } + /// Trim multiple newlines from the end of the buffer, keeping at most one. + pub(crate) fn trim_multiple_newlines(&mut self) { + while self.buffer.ends_with("\n\n") { + self.buffer.truncate(self.buffer.len() - 1); + } + } + pub(crate) fn contents(self) -> String { self.buffer } diff --git a/tooling/nargo_fmt/src/formatter/comments_and_whitespace.rs b/tooling/nargo_fmt/src/formatter/comments_and_whitespace.rs index e20eb4291d1..6a3af34345c 100644 --- a/tooling/nargo_fmt/src/formatter/comments_and_whitespace.rs +++ b/tooling/nargo_fmt/src/formatter/comments_and_whitespace.rs @@ -858,4 +858,11 @@ global x = 1; "; assert_format(src, expected); } + + #[test] + fn trims_newlines_from_the_end_of_the_file() { + let src = "global x: Field = 1;\n\n\n"; + let expected = "global x: Field = 1;\n"; + assert_format(src, expected); + } } diff --git a/tooling/nargo_fmt/src/formatter/function.rs b/tooling/nargo_fmt/src/formatter/function.rs index ca905f3dcf8..f39110d4cb9 100644 --- a/tooling/nargo_fmt/src/formatter/function.rs +++ b/tooling/nargo_fmt/src/formatter/function.rs @@ -542,7 +542,6 @@ fn bar() { // noir-fmt:ignore fn baz() { let z = 3 ; } - "; assert_format(src, expected); } diff --git a/tooling/nargo_fmt/tests/expected/databus.nr b/tooling/nargo_fmt/tests/expected/databus.nr index 0e9761ed52d..15ba3fc1272 100644 --- a/tooling/nargo_fmt/tests/expected/databus.nr +++ b/tooling/nargo_fmt/tests/expected/databus.nr @@ -1,2 +1 @@ fn main(x: pub u8, y: call_data(0) u8) -> return_data u32 {} - diff --git a/tooling/nargo_fmt/tests/expected/fn.nr b/tooling/nargo_fmt/tests/expected/fn.nr index afdb8883e15..571ec33f5d3 100644 --- a/tooling/nargo_fmt/tests/expected/fn.nr +++ b/tooling/nargo_fmt/tests/expected/fn.nr @@ -95,4 +95,3 @@ fn four() {} #[test(should_fail_with = "oops")] fn five() {} - diff --git a/tooling/nargo_fmt/tests/expected/ignore.nr b/tooling/nargo_fmt/tests/expected/ignore.nr index 6e957539405..1c84e178f34 100644 --- a/tooling/nargo_fmt/tests/expected/ignore.nr +++ b/tooling/nargo_fmt/tests/expected/ignore.nr @@ -24,4 +24,3 @@ fn mk_array() { ]; let array = [1]; } - diff --git a/tooling/nargo_fmt/tests/expected/trait.nr b/tooling/nargo_fmt/tests/expected/trait.nr index 0467585fac3..8b64273a1a2 100644 --- a/tooling/nargo_fmt/tests/expected/trait.nr +++ b/tooling/nargo_fmt/tests/expected/trait.nr @@ -1,2 +1 @@ trait Foo: Bar + Baz {} - diff --git a/tooling/nargo_fmt/tests/expected/trait_alias.nr b/tooling/nargo_fmt/tests/expected/trait_alias.nr index 926f3160279..5b2eb0ce552 100644 --- a/tooling/nargo_fmt/tests/expected/trait_alias.nr +++ b/tooling/nargo_fmt/tests/expected/trait_alias.nr @@ -83,4 +83,3 @@ fn main() { assert(0.foo_3().bar_3() == baz_3(0)); } - diff --git a/tooling/nargo_fmt/tests/expected/unsafe.nr b/tooling/nargo_fmt/tests/expected/unsafe.nr index 265cba9604f..ca32b3954e0 100644 --- a/tooling/nargo_fmt/tests/expected/unsafe.nr +++ b/tooling/nargo_fmt/tests/expected/unsafe.nr @@ -12,4 +12,3 @@ fn main(x: pub u8, y: u8) { assert_eq(x, y); } } -