⭐️ A friendly language for building type-safe, scalable systems!

Remove extra block wrapping

+6 -1
compiler-core/src/erlang.rs
··· 1986 1986 1987 1987 fn needs_begin_end_wrapping(expression: &TypedExpr) -> bool { 1988 1988 match expression { 1989 - TypedExpr::RecordUpdate { .. } | TypedExpr::Pipeline { .. } => true, 1989 + // Record updates are 1 expression if there's no assignment, multiple otherwise. 1990 + TypedExpr::RecordUpdate { 1991 + record_assignment, .. 1992 + } => record_assignment.is_some(), 1993 + 1994 + TypedExpr::Pipeline { .. } => true, 1990 1995 1991 1996 TypedExpr::Int { .. } 1992 1997 | TypedExpr::Float { .. }
+1 -6
compiler-core/src/erlang/tests/snapshots/gleam_core__erlang__tests__echo__record_update_printed_by_echo_is_wrapped_in_begin_end_block.snap
··· 27 27 -spec main() -> wobble(). 28 28 main() -> 29 29 Wobble = {wobble, 1, <<"wobble"/utf8>>}, 30 - echo( 31 - begin 32 - {wobble, 1, erlang:element(3, Wobble)} 33 - end, 34 - 6 35 - ). 30 + echo({wobble, 1, erlang:element(3, Wobble)}, 6). 36 31 37 32 % ...omitted code from `templates/echo.erl`...
+1 -3
compiler-core/src/erlang/tests/snapshots/gleam_core__erlang__tests__records__record_updates.snap
··· 28 28 -spec main() -> person(). 29 29 main() -> 30 30 P = {person, <<"Quinn"/utf8>>, 27}, 31 - New_p = begin 32 - {person, erlang:element(2, P), 28} 33 - end, 31 + New_p = {person, erlang:element(2, P), 28}, 34 32 New_p.
+1 -3
compiler-core/src/erlang/tests/snapshots/gleam_core__erlang__tests__records__record_updates1.snap
··· 28 28 -spec main() -> person(). 29 29 main() -> 30 30 P = {person, <<"Quinn"/utf8>>, 27}, 31 - New_p = begin 32 - {person, erlang:element(2, P), erlang:element(3, P) + 1} 33 - end, 31 + New_p = {person, erlang:element(2, P), erlang:element(3, P) + 1}, 34 32 New_p.
+1 -3
compiler-core/src/erlang/tests/snapshots/gleam_core__erlang__tests__records__record_updates2.snap
··· 28 28 -spec main() -> person(). 29 29 main() -> 30 30 P = {person, <<"Quinn"/utf8>>, 27}, 31 - New_p = begin 32 - {person, <<"Riley"/utf8>>, 28} 33 - end, 31 + New_p = {person, <<"Riley"/utf8>>, 28}, 34 32 New_p.
+8 -2
compiler-core/src/javascript/expression.rs
··· 621 621 | TypedExpr::Todo { .. } 622 622 | TypedExpr::Case { .. } 623 623 | TypedExpr::Pipeline { .. } 624 - | TypedExpr::RecordUpdate { .. }, 624 + | TypedExpr::RecordUpdate { 625 + record_assignment: Some(_), 626 + .. 627 + }, 625 628 Position::NotTail(Ordering::Loose), 626 629 ) => self.wrap_block(|this| this.expression(expression)), 627 630 ( ··· 629 632 | TypedExpr::Todo { .. } 630 633 | TypedExpr::Case { .. } 631 634 | TypedExpr::Pipeline { .. } 632 - | TypedExpr::RecordUpdate { .. }, 635 + | TypedExpr::RecordUpdate { 636 + record_assignment: Some(_), 637 + .. 638 + }, 633 639 Position::NotTail(Ordering::Strict), 634 640 ) => self.immediately_invoked_function_expression(expression, |this, expr| { 635 641 this.expression(expr)
+2 -6
compiler-core/src/javascript/tests/snapshots/gleam_core__javascript__tests__case__record_update_in_pipeline_in_case_clause.snap
··· 43 43 export function go(x) { 44 44 let $ = x.wibble; 45 45 if ($ === 1) { 46 - let _block; 47 - _block = new Wibble(4, x.wobble); 48 - let _pipe = _block; 46 + let _pipe = new Wibble(4, x.wobble); 49 47 return identity(_pipe); 50 48 } else { 51 49 let $1 = x.wobble; 52 50 if ($1 === 3) { 53 - let _block; 54 - _block = new Wibble(x.wibble, 10); 55 - let _pipe = _block; 51 + let _pipe = new Wibble(x.wibble, 10); 56 52 return identity(_pipe); 57 53 } else { 58 54 throw makeError(
+1 -3
compiler-core/src/javascript/tests/snapshots/gleam_core__javascript__tests__custom_types__record_with_field_named_constructor.snap
··· 29 29 30 30 export function main() { 31 31 let a = new Thing(undefined); 32 - let _block; 33 - _block = new Thing(undefined); 34 - let b = _block; 32 + let b = new Thing(undefined); 35 33 return b.constructor$; 36 34 }
+1 -3
compiler-core/src/javascript/tests/snapshots/gleam_core__javascript__tests__custom_types__record_with_field_named_then.snap
··· 29 29 30 30 export function main() { 31 31 let a = new Thing(undefined); 32 - let _block; 33 - _block = new Thing(undefined); 34 - let b = _block; 32 + let b = new Thing(undefined); 35 33 return b.then$; 36 34 }