Skip to content

Commit 27fa308

Browse files
committed
Fixed let-else formatting by using higher precedence values. (#8008)
1 parent 882994b commit 27fa308

File tree

7 files changed

+35
-33
lines changed

7 files changed

+35
-33
lines changed

corelib/src/math.cairo

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,9 @@ pub fn egcd<
4747
) -> (T, T, T, bool) {
4848
let (q, r) = DivRem::<T>::div_rem(a.into(), b);
4949

50-
let Some(r) = r
51-
.try_into() else {
52-
return (
53-
b.into(), core::num::traits::Zero::zero(), core::num::traits::One::one(), false,
54-
);
55-
};
50+
let Some(r) = r.try_into() else {
51+
return (b.into(), core::num::traits::Zero::zero(), core::num::traits::One::one(), false);
52+
};
5653

5754
// `sign` (1 for true, -1 for false) is the sign of `g` in the current iteration.
5855
// 0 is considered negative for this purpose.

corelib/src/poseidon.cairo

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -141,10 +141,9 @@ fn _poseidon_hash_span_inner(
141141
let Some(x) = span.pop_front() else {
142142
return HashState { s0, s1, s2, odd: false }.finalize();
143143
};
144-
let Some(y) = span
145-
.pop_front() else {
146-
return HashState { s0: s0 + *x, s1, s2, odd: true }.finalize();
147-
};
144+
let Some(y) = span.pop_front() else {
145+
return HashState { s0: s0 + *x, s1, s2, odd: true }.finalize();
146+
};
148147
let next_state = hades_permutation(s0 + *x, s1 + *y, s2);
149148
crate::gas::withdraw_gas_all(builtin_costs).expect('Out of gas');
150149
_poseidon_hash_span_inner(builtin_costs, next_state, ref span)

corelib/src/starknet/storage_access.cairo

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -874,8 +874,8 @@ fn inner_byte_array_pointer(address: StorageAddress, chunk: felt252) -> StorageB
874874
fn inner_read_byte_array(address_domain: u32, address: StorageAddress) -> SyscallResult<ByteArray> {
875875
let Some::<usize>(len) = starknet::syscalls::storage_read_syscall(address_domain, address)?
876876
.try_into() else {
877-
return Err(array!['Invalid ByteArray length']);
878-
};
877+
return Err(array!['Invalid ByteArray length']);
878+
};
879879
let (mut remaining_full_words, pending_word_len) = core::DivRem::div_rem(
880880
len, BYTES_IN_BYTES31.try_into().unwrap(),
881881
);

crates/cairo-lang-formatter/src/node_properties.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,8 @@ impl SyntaxNodeFormat for SyntaxNode {
384384
| SyntaxKind::ExprListParenthesized
385385
| SyntaxKind::ArgListBraced
386386
| SyntaxKind::ArgListBracketed
387-
| SyntaxKind::ExprUnary => Some(1),
387+
| SyntaxKind::ExprUnary => Some(9),
388+
SyntaxKind::LetElseClause => Some(7),
388389
SyntaxKind::TerminalEq => Some(10),
389390
SyntaxKind::PatternEnum
390391
| SyntaxKind::PatternTuple

crates/cairo-lang-formatter/test_data/cairo_files/linebreaking.cairo

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,14 @@ fn comment_remains_after_last_comma() {
8282
fn struct_line_breaking() {
8383
let MyStruct {long_long_long_long_key_a, long_long_long_long_key_b, long_long_long_long_key_c, long_long_long_long_key_d, long_long_long_long_key_e, } = my_val;
8484
}
85+
fn let_else_line_breaking() {
86+
let MyEnum::MyVariant(info) = my_val
87+
.calc0()
88+
.calc1()
89+
.calc2() else {
90+
return rather_long_return_value;
91+
};
92+
}
8593
fn closure_line_breaking() {
8694
let closure_with_a_very_very_very_very_very_very_very_very_large_name = |left: usize, right: usize| -> usize {
8795
left + right

crates/cairo-lang-formatter/test_data/expected_results/linebreaking.cairo

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,11 @@ fn struct_line_breaking() {
306306
long_long_long_long_key_e,
307307
} = my_val;
308308
}
309+
fn let_else_line_breaking() {
310+
let MyEnum::MyVariant(info) = my_val.calc0().calc1().calc2() else {
311+
return rather_long_return_value;
312+
};
313+
}
309314
fn closure_line_breaking() {
310315
let closure_with_a_very_very_very_very_very_very_very_very_large_name = |
311316
left: usize, right: usize,

crates/cairo-lang-starknet/cairo_level_tests/storage_access.cairo

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -240,32 +240,24 @@ fn test_storage_vec_of_vecs() {
240240
fn test_enum_sub_pointers() {
241241
let mut state = test_contract::contract_state_for_testing();
242242
state.queryable_enum.write(QueryableEnum::A);
243-
let QueryableEnumVariants::A(_) = (@state)
244-
.queryable_enum
245-
.sub_pointers() else {
246-
panic!("expected QueryableEnumVariants::A(_)");
247-
};
243+
let QueryableEnumVariants::A(_) = (@state).queryable_enum.sub_pointers() else {
244+
panic!("expected QueryableEnumVariants::A(_)");
245+
};
248246
state.queryable_enum.write(QueryableEnum::B(123_u128));
249-
let QueryableEnumVariants::B(ptr) = (@state)
250-
.queryable_enum
251-
.sub_pointers() else {
252-
panic!("expected QueryableEnumVariants::B(_)");
253-
};
247+
let QueryableEnumVariants::B(ptr) = (@state).queryable_enum.sub_pointers() else {
248+
panic!("expected QueryableEnumVariants::B(_)");
249+
};
254250
assert_eq!(ptr.read(), 123);
255251
state.queryable_enum.write(QueryableEnum::C(456_u256));
256-
let QueryableEnumVariants::C(ptr) = (@state)
257-
.queryable_enum
258-
.sub_pointers() else {
259-
panic!("expected QueryableEnumVariants::C(_)");
260-
};
252+
let QueryableEnumVariants::C(ptr) = (@state).queryable_enum.sub_pointers() else {
253+
panic!("expected QueryableEnumVariants::C(_)");
254+
};
261255
assert_eq!(ptr.low.read(), 456);
262256
assert_eq!(ptr.high.read(), 0);
263257
state.queryable_enum.write(QueryableEnum::C(789_u256));
264-
let QueryableEnumVariants::C(ptr) = (@state)
265-
.queryable_enum
266-
.sub_pointers() else {
267-
panic!("expected QueryableEnumVariants::C(_)");
268-
};
258+
let QueryableEnumVariants::C(ptr) = (@state).queryable_enum.sub_pointers() else {
259+
panic!("expected QueryableEnumVariants::C(_)");
260+
};
269261
assert_eq!(ptr.low.read(), 789);
270262
assert_eq!(ptr.high.read(), 0);
271263
}

0 commit comments

Comments
 (0)