mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-26 13:29:12 +00:00
Fix indentation of single-line ifs
This commit is contained in:
parent
7fd97dec72
commit
d9ad34592c
7 changed files with 87 additions and 10 deletions
|
@ -2765,7 +2765,7 @@ fn if_expr_help<'a>(options: ExprParseOptions) -> impl Parser<'a, Expr<'a>, EIf<
|
||||||
|
|
||||||
let (state_final_else, then_indent) = loop {
|
let (state_final_else, then_indent) = loop {
|
||||||
let (_, ((cond, then_indent), then_branch), state) = if_branch()
|
let (_, ((cond, then_indent), then_branch), state) = if_branch()
|
||||||
.parse(arena, loop_state, min_indent)
|
.parse(arena, loop_state, if_indent)
|
||||||
.map_err(|(_p, err)| (MadeProgress, err))?;
|
.map_err(|(_p, err)| (MadeProgress, err))?;
|
||||||
|
|
||||||
branches.push((cond, then_branch));
|
branches.push((cond, then_branch));
|
||||||
|
@ -2794,7 +2794,7 @@ fn if_expr_help<'a>(options: ExprParseOptions) -> impl Parser<'a, Expr<'a>, EIf<
|
||||||
let indented_else = else_indent > then_indent && has_newline_next;
|
let indented_else = else_indent > then_indent && has_newline_next;
|
||||||
|
|
||||||
let min_indent = if indented_else {
|
let min_indent = if indented_else {
|
||||||
std::cmp::min(then_indent, else_indent)
|
std::cmp::min(if_indent, std::cmp::min(then_indent, else_indent))
|
||||||
} else {
|
} else {
|
||||||
else_indent + 1
|
else_indent + 1
|
||||||
};
|
};
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
f = if !b! then
|
||||||
|
""
|
||||||
|
else
|
||||||
|
e
|
||||||
|
""
|
|
@ -0,0 +1,68 @@
|
||||||
|
@0-23 SpaceAfter(
|
||||||
|
Defs(
|
||||||
|
Defs {
|
||||||
|
tags: [
|
||||||
|
EitherIndex(2147483648),
|
||||||
|
],
|
||||||
|
regions: [
|
||||||
|
@0-20,
|
||||||
|
],
|
||||||
|
space_before: [
|
||||||
|
Slice<roc_parse::ast::CommentOrNewline> { start: 0, length: 0 },
|
||||||
|
],
|
||||||
|
space_after: [
|
||||||
|
Slice<roc_parse::ast::CommentOrNewline> { start: 0, length: 0 },
|
||||||
|
],
|
||||||
|
spaces: [],
|
||||||
|
type_defs: [],
|
||||||
|
value_defs: [
|
||||||
|
Body(
|
||||||
|
@0-1 Identifier {
|
||||||
|
ident: "f",
|
||||||
|
},
|
||||||
|
@2-20 If {
|
||||||
|
if_thens: [
|
||||||
|
(
|
||||||
|
@4-7 UnaryOp(
|
||||||
|
@5-7 Var {
|
||||||
|
module_name: "",
|
||||||
|
ident: "b!",
|
||||||
|
},
|
||||||
|
@4-5 Not,
|
||||||
|
),
|
||||||
|
@11-13 Str(
|
||||||
|
PlainLine(
|
||||||
|
"",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
final_else: @19-20 SpaceBefore(
|
||||||
|
Var {
|
||||||
|
module_name: "",
|
||||||
|
ident: "e",
|
||||||
|
},
|
||||||
|
[
|
||||||
|
Newline,
|
||||||
|
],
|
||||||
|
),
|
||||||
|
indented_else: false,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
|
},
|
||||||
|
@21-23 SpaceBefore(
|
||||||
|
Str(
|
||||||
|
PlainLine(
|
||||||
|
"",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
[
|
||||||
|
Newline,
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
[
|
||||||
|
Newline,
|
||||||
|
],
|
||||||
|
)
|
|
@ -0,0 +1,3 @@
|
||||||
|
f=if!b!then""else
|
||||||
|
e
|
||||||
|
""
|
|
@ -1,8 +1,8 @@
|
||||||
@1-23 SpaceAfter(
|
@0-22 SpaceAfter(
|
||||||
If {
|
If {
|
||||||
if_thens: [
|
if_thens: [
|
||||||
(
|
(
|
||||||
@4-5 SpaceBefore(
|
@3-4 SpaceBefore(
|
||||||
SpaceAfter(
|
SpaceAfter(
|
||||||
Var {
|
Var {
|
||||||
module_name: "",
|
module_name: "",
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
Newline,
|
Newline,
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@11-12 SpaceBefore(
|
@10-11 SpaceBefore(
|
||||||
SpaceAfter(
|
SpaceAfter(
|
||||||
Tag(
|
Tag(
|
||||||
"A",
|
"A",
|
||||||
|
@ -31,14 +31,14 @@
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
final_else: @20-23 SpaceBefore(
|
final_else: @19-22 SpaceBefore(
|
||||||
Defs(
|
Defs(
|
||||||
Defs {
|
Defs {
|
||||||
tags: [
|
tags: [
|
||||||
EitherIndex(2147483648),
|
EitherIndex(2147483648),
|
||||||
],
|
],
|
||||||
regions: [
|
regions: [
|
||||||
@20-21,
|
@19-20,
|
||||||
],
|
],
|
||||||
space_before: [
|
space_before: [
|
||||||
Slice<roc_parse::ast::CommentOrNewline> { start: 0, length: 0 },
|
Slice<roc_parse::ast::CommentOrNewline> { start: 0, length: 0 },
|
||||||
|
@ -50,14 +50,14 @@
|
||||||
type_defs: [],
|
type_defs: [],
|
||||||
value_defs: [
|
value_defs: [
|
||||||
Stmt(
|
Stmt(
|
||||||
@20-21 Var {
|
@19-20 Var {
|
||||||
module_name: "",
|
module_name: "",
|
||||||
ident: "e",
|
ident: "e",
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
@22-23 SpaceBefore(
|
@21-22 SpaceBefore(
|
||||||
Var {
|
Var {
|
||||||
module_name: "",
|
module_name: "",
|
||||||
ident: "r",
|
ident: "r",
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
if
|
if
|
||||||
k
|
k
|
||||||
then
|
then
|
||||||
A
|
A
|
||||||
|
|
|
@ -454,6 +454,7 @@ mod test_snapshots {
|
||||||
pass/highest_float.expr,
|
pass/highest_float.expr,
|
||||||
pass/highest_int.expr,
|
pass/highest_int.expr,
|
||||||
pass/i_over_not_g.expr,
|
pass/i_over_not_g.expr,
|
||||||
|
pass/if_bang_then_else_one_line.expr,
|
||||||
pass/if_def.expr,
|
pass/if_def.expr,
|
||||||
pass/if_in_record_field_opt_pat.expr,
|
pass/if_in_record_field_opt_pat.expr,
|
||||||
pass/if_newline_then_negate_else_recordupdater.expr,
|
pass/if_newline_then_negate_else_recordupdater.expr,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue