Merge remote-tracking branch 'remote/main' into rebuild-platform

This commit is contained in:
Luke Boswell 2024-11-04 13:57:51 +11:00
commit c00db6da37
No known key found for this signature in database
GPG key ID: F6DB3C9DB47377B0
100 changed files with 2554 additions and 279 deletions

View file

@ -0,0 +1 @@
Expr(Return(IndentReturnValue(@6), @0), @0)

View file

@ -0,0 +1 @@
return

View file

@ -96,10 +96,7 @@ SpaceAfter(
"",
),
@50-74 Apply(
@50-53 Var {
module_name: "",
ident: "try",
},
@50-53 Try,
[
@54-57 Var {
module_name: "",

View file

@ -0,0 +1,10 @@
maybeEarlyReturn = \x ->
y =
if x > 5 then
return "abc"
else
x + 2
Num.toStr y
maybeEarlyReturn 10

View file

@ -0,0 +1,167 @@
SpaceAfter(
Defs(
Defs {
tags: [
EitherIndex(2147483648),
],
regions: [
@0-127,
],
space_before: [
Slice { start: 0, length: 0 },
],
space_after: [
Slice { start: 0, length: 0 },
],
spaces: [],
type_defs: [],
value_defs: [
Body(
@0-16 Identifier {
ident: "maybeEarlyReturn",
},
@19-127 Closure(
[
@20-21 Identifier {
ident: "x",
},
],
@29-127 SpaceBefore(
Defs(
Defs {
tags: [
EitherIndex(2147483648),
],
regions: [
@29-110,
],
space_before: [
Slice { start: 0, length: 0 },
],
space_after: [
Slice { start: 0, length: 0 },
],
spaces: [],
type_defs: [],
value_defs: [
Body(
@29-30 Identifier {
ident: "y",
},
@41-110 SpaceBefore(
If {
if_thens: [
(
@44-49 BinOps(
[
(
@44-45 Var {
module_name: "",
ident: "x",
},
@46-47 GreaterThan,
),
],
@48-49 Num(
"5",
),
),
@67-79 SpaceBefore(
SpaceAfter(
Return(
@67-79 Str(
PlainLine(
"abc",
),
),
None,
),
[
Newline,
],
),
[
Newline,
],
),
),
],
final_else: @105-110 SpaceBefore(
BinOps(
[
(
@105-106 Var {
module_name: "",
ident: "x",
},
@107-108 Plus,
),
],
@109-110 Num(
"2",
),
),
[
Newline,
],
),
indented_else: false,
},
[
Newline,
],
),
),
],
},
@116-127 SpaceBefore(
Apply(
@116-125 Var {
module_name: "Num",
ident: "toStr",
},
[
@126-127 Var {
module_name: "",
ident: "y",
},
],
Space,
),
[
Newline,
Newline,
],
),
),
[
Newline,
],
),
),
),
],
},
@129-148 SpaceBefore(
Apply(
@129-145 Var {
module_name: "",
ident: "maybeEarlyReturn",
},
[
@146-148 Num(
"10",
),
],
Space,
),
[
Newline,
Newline,
],
),
),
[
Newline,
],
)

View file

@ -0,0 +1,10 @@
maybeEarlyReturn = \x ->
y =
if x > 5 then
return "abc"
else
x + 2
Num.toStr y
maybeEarlyReturn 10

View file

@ -0,0 +1,11 @@
staticValueDef =
someVal =
if 10 > 5 then
x = 5
return x
else
6
someVal + 2
staticValueDef

View file

@ -0,0 +1,169 @@
SpaceAfter(
Defs(
Defs {
tags: [
EitherIndex(2147483648),
],
regions: [
@0-142,
],
space_before: [
Slice { start: 0, length: 0 },
],
space_after: [
Slice { start: 0, length: 0 },
],
spaces: [],
type_defs: [],
value_defs: [
Body(
@0-14 Identifier {
ident: "staticValueDef",
},
@21-142 SpaceBefore(
Defs(
Defs {
tags: [
EitherIndex(2147483648),
],
regions: [
@21-125,
],
space_before: [
Slice { start: 0, length: 0 },
],
space_after: [
Slice { start: 0, length: 0 },
],
spaces: [],
type_defs: [],
value_defs: [
Body(
@21-28 Identifier {
ident: "someVal",
},
@39-125 SpaceBefore(
If {
if_thens: [
(
@42-48 BinOps(
[
(
@42-44 Num(
"10",
),
@45-46 GreaterThan,
),
],
@47-48 Num(
"5",
),
),
@67-97 SpaceBefore(
SpaceAfter(
Defs(
Defs {
tags: [
EitherIndex(2147483648),
],
regions: [
@67-72,
],
space_before: [
Slice { start: 0, length: 0 },
],
space_after: [
Slice { start: 0, length: 0 },
],
spaces: [],
type_defs: [],
value_defs: [
Body(
@67-68 Identifier {
ident: "x",
},
@71-72 Num(
"5",
),
),
],
},
Return(
@86-97 Var {
module_name: "",
ident: "x",
},
None,
),
),
[
Newline,
],
),
[
Newline,
],
),
),
],
final_else: @124-125 SpaceBefore(
Num(
"6",
),
[
Newline,
],
),
indented_else: false,
},
[
Newline,
],
),
),
],
},
@131-142 SpaceBefore(
BinOps(
[
(
@131-138 Var {
module_name: "",
ident: "someVal",
},
@139-140 Plus,
),
],
@141-142 Num(
"2",
),
),
[
Newline,
Newline,
],
),
),
[
Newline,
],
),
),
],
},
@145-159 SpaceBefore(
Var {
module_name: "",
ident: "staticValueDef",
},
[
Newline,
Newline,
Newline,
],
),
),
[
Newline,
],
)

View file

@ -0,0 +1,12 @@
staticValueDef =
someVal =
if 10 > 5 then
x = 5
return x
else
6
someVal + 2
staticValueDef

View file

@ -0,0 +1,11 @@
maybeEarlyReturn = \x ->
y =
when x is
5 ->
return "abc"
_ -> x + 2
Num.toStr y
maybeEarlyRetun 3

View file

@ -0,0 +1,177 @@
SpaceAfter(
Defs(
Defs {
tags: [
EitherIndex(2147483648),
],
regions: [
@0-154,
],
space_before: [
Slice { start: 0, length: 0 },
],
space_after: [
Slice { start: 0, length: 0 },
],
spaces: [],
type_defs: [],
value_defs: [
Body(
@0-16 Identifier {
ident: "maybeEarlyReturn",
},
@19-154 Closure(
[
@20-21 Identifier {
ident: "x",
},
],
@29-154 SpaceBefore(
Defs(
Defs {
tags: [
EitherIndex(2147483648),
],
regions: [
@29-136,
],
space_before: [
Slice { start: 0, length: 0 },
],
space_after: [
Slice { start: 0, length: 0 },
],
spaces: [],
type_defs: [],
value_defs: [
Body(
@29-30 Identifier {
ident: "y",
},
@37-136 SpaceBefore(
When(
@42-43 Var {
module_name: "",
ident: "x",
},
[
WhenBranch {
patterns: [
@55-56 SpaceBefore(
NumLiteral(
"5",
),
[
Newline,
],
),
],
value: @80-116 SpaceBefore(
Return(
@80-116 SpaceBefore(
Str(
PlainLine(
"abc",
),
),
[
Newline,
],
),
None,
),
[
Newline,
],
),
guard: None,
},
WhenBranch {
patterns: [
@126-127 SpaceBefore(
Underscore(
"",
),
[
Newline,
Newline,
],
),
],
value: @131-136 BinOps(
[
(
@131-132 Var {
module_name: "",
ident: "x",
},
@133-134 Plus,
),
],
@135-136 Num(
"2",
),
),
guard: None,
},
],
),
[
Newline,
],
),
),
],
},
@143-154 SpaceBefore(
Apply(
@143-152 Var {
module_name: "Num",
ident: "toStr",
},
[
@153-154 Var {
module_name: "",
ident: "y",
},
],
Space,
),
[
Newline,
Newline,
Newline,
],
),
),
[
Newline,
],
),
),
),
],
},
@156-173 SpaceBefore(
Apply(
@156-171 Var {
module_name: "",
ident: "maybeEarlyRetun",
},
[
@172-173 Num(
"3",
),
],
Space,
),
[
Newline,
Newline,
],
),
),
[
Newline,
],
)

View file

@ -0,0 +1,13 @@
maybeEarlyReturn = \x ->
y =
when x is
5 ->
return
"abc"
_ -> x + 2
Num.toStr y
maybeEarlyRetun 3

View file

@ -0,0 +1,3 @@
return something
|> pipeToFunction
|> andAnother

View file

@ -0,0 +1,45 @@
SpaceAfter(
Return(
@0-84 SpaceBefore(
BinOps(
[
(
@15-24 SpaceAfter(
Var {
module_name: "",
ident: "something",
},
[
Newline,
],
),
@37-39 Pizza,
),
(
@40-54 SpaceAfter(
Var {
module_name: "",
ident: "pipeToFunction",
},
[
Newline,
],
),
@71-73 Pizza,
),
],
@74-84 Var {
module_name: "",
ident: "andAnother",
},
),
[
Newline,
],
),
None,
),
[
Newline,
],
)

View file

@ -0,0 +1,4 @@
return
something
|> pipeToFunction
|> andAnother

View file

@ -0,0 +1,4 @@
identityFn = \x ->
return x
identityFn 45

View file

@ -0,0 +1,68 @@
SpaceAfter(
Defs(
Defs {
tags: [
EitherIndex(2147483648),
],
regions: [
@0-33,
],
space_before: [
Slice { start: 0, length: 0 },
],
space_after: [
Slice { start: 0, length: 0 },
],
spaces: [],
type_defs: [],
value_defs: [
Body(
@0-10 Identifier {
ident: "identityFn",
},
@13-33 Closure(
[
@14-15 Identifier {
ident: "x",
},
],
@21-33 SpaceBefore(
Return(
@21-33 Var {
module_name: "",
ident: "x",
},
None,
),
[
Newline,
],
),
),
),
],
},
@36-49 SpaceBefore(
Apply(
@36-46 Var {
module_name: "",
ident: "identityFn",
},
[
@47-49 Num(
"45",
),
],
Space,
),
[
Newline,
Newline,
Newline,
],
),
),
[
Newline,
],
)

View file

@ -0,0 +1,5 @@
identityFn = \x ->
return x
identityFn 45

View file

@ -0,0 +1,2 @@
"123"
|> try Str.toU64

View file

@ -0,0 +1,32 @@
SpaceAfter(
BinOps(
[
(
@0-5 SpaceAfter(
Str(
PlainLine(
"123",
),
),
[
Newline,
],
),
@17-19 Pizza,
),
],
@20-33 Apply(
@20-23 Try,
[
@24-33 Var {
module_name: "Str",
ident: "toU64",
},
],
Space,
),
),
[
Newline,
],
)

View file

@ -0,0 +1,2 @@
"123"
|> try Str.toU64

View file

@ -0,0 +1 @@
Str.toU64 "123" |> try

View file

@ -0,0 +1,27 @@
SpaceAfter(
BinOps(
[
(
@0-15 Apply(
@0-9 Var {
module_name: "Str",
ident: "toU64",
},
[
@10-15 Str(
PlainLine(
"123",
),
),
],
Space,
),
@15-17 Pizza,
),
],
@18-21 Try,
),
[
Newline,
],
)

View file

@ -0,0 +1 @@
Str.toU64 "123"|> try

View file

@ -0,0 +1 @@
try Str.toU64 "123"

View file

@ -0,0 +1,20 @@
SpaceAfter(
Apply(
@0-3 Try,
[
@5-14 Var {
module_name: "Str",
ident: "toU64",
},
@16-21 Str(
PlainLine(
"123",
),
),
],
Space,
),
[
Newline,
],
)

View file

@ -0,0 +1 @@
try Str.toU64 "123"

View file

@ -6071,6 +6071,41 @@ mod test_fmt {
);
}
#[test]
fn format_try() {
expr_formats_same(indoc!(
r#"
_ = crash
_ = crash ""
crash "" ""
"#
));
expr_formats_to(
indoc!(
r#"
_ = crash
_ = crash ""
_ = crash "" ""
try
foo
(\_ -> crash "")
"#
),
indoc!(
r#"
_ = crash
_ = crash ""
_ = crash "" ""
try
foo
(\_ -> crash "")
"#
),
);
}
#[test]
fn issue_6197() {
expr_formats_to(

View file

@ -196,6 +196,7 @@ mod test_snapshots {
fail/double_plus.expr,
fail/elm_function_syntax.expr,
fail/empty_or_pattern.expr,
fail/empty_return.expr,
fail/error_inline_alias_argument_uppercase.expr,
fail/error_inline_alias_not_an_alias.expr,
fail/error_inline_alias_qualified.expr,
@ -233,6 +234,7 @@ mod test_snapshots {
fail/record_type_open.expr,
fail/record_type_open_indent.expr,
fail/record_type_tab.expr,
fail/return_as_single_line_expr.expr,
fail/single_no_end.expr,
fail/tab_crash.header,
fail/tag_union_end.expr,
@ -463,6 +465,11 @@ mod test_snapshots {
pass/record_updater_var_apply.expr,
pass/record_with_if.expr,
pass/requires_type.header,
pass/return_in_if.expr,
pass/return_in_static_def.expr,
pass/return_in_when.expr,
pass/return_multiline.expr,
pass/return_only_statement.expr,
pass/separate_defs.moduledefs,
pass/single_arg_closure.expr,
pass/single_underscore_closure.expr,
@ -488,6 +495,9 @@ mod test_snapshots {
pass/tag_pattern.expr,
pass/ten_times_eleven.expr,
pass/three_arg_closure.expr,
pass/try_function_after_pipe.expr,
pass/try_pipe_suffix.expr,
pass/try_plain_prefix.expr,
pass/tuple_access_after_ident.expr,
pass/tuple_access_after_record.expr,
pass/tuple_accessor_function.expr,