diff --git a/src/rules/if_else.rs b/src/rules/if_else.rs index 57e9002..79df182 100644 --- a/src/rules/if_else.rs +++ b/src/rules/if_else.rs @@ -41,11 +41,11 @@ pub fn rule( steps.push_back(crate::builder::Step::FormatWider( child.element, )); + steps.push_back(crate::builder::Step::Dedent); if branch != "else" { steps.push_back(crate::builder::Step::NewLine); steps.push_back(crate::builder::Step::Pad); } - steps.push_back(crate::builder::Step::Dedent); } crate::config::Layout::Wide => { steps.push_back(crate::builder::Step::Format(child.element)); diff --git a/tests/cases/if_else/in b/tests/cases/if_else/in index b276d87..79123b8 100644 --- a/tests/cases/if_else/in +++ b/tests/cases/if_else/in @@ -1,4 +1,70 @@ [ (if a then b else c) (if /**/ a /**/ then /**/ b /**/ else /**/ c) + (if + (if + (if + (if a then b else c) + then + (if a then b else c) + else + (if a then b else c)) + then + (if + (if a then b else c) + then + (if a then b else c) + else + (if a then b else c)) + else + (if + (if a then b else c) + then + (if a then b else c) + else + (if a then b else c))) + then + (if + (if + (if a then b else c) + then + (if a then b else c) + else + (if a then b else c)) + then + (if + (if a then b else c) + then + (if a then b else c) + else + (if a then b else c)) + else + (if + (if a then b else c) + then + (if a then b else c) + else + (if a then b else c))) + else + (if + (if + (if a then b else c) + then + (if a then b else c) + else + (if a then b else c)) + then + (if + (if a then b else c) + then + (if a then b else c) + else + (if a then b else c)) + else + (if + (if a then b else c) + then + (if a then b else c) + else + (if a then b else c)))) ] diff --git a/tests/cases/if_else/out b/tests/cases/if_else/out index 0cbfb0d..5915e2a 100644 --- a/tests/cases/if_else/out +++ b/tests/cases/if_else/out @@ -4,13 +4,105 @@ if /**/ a - /**/ + /**/ then /**/ b - /**/ + /**/ else /**/ c ) + ( + if + ( + if + ( + if + ( if a then b else c ) + then + ( if a then b else c ) + else + ( if a then b else c ) + ) + then + ( + if + ( if a then b else c ) + then + ( if a then b else c ) + else + ( if a then b else c ) + ) + else + ( + if + ( if a then b else c ) + then + ( if a then b else c ) + else + ( if a then b else c ) + ) + ) + then + ( + if + ( + if + ( if a then b else c ) + then + ( if a then b else c ) + else + ( if a then b else c ) + ) + then + ( + if + ( if a then b else c ) + then + ( if a then b else c ) + else + ( if a then b else c ) + ) + else + ( + if + ( if a then b else c ) + then + ( if a then b else c ) + else + ( if a then b else c ) + ) + ) + else + ( + if + ( + if + ( if a then b else c ) + then + ( if a then b else c ) + else + ( if a then b else c ) + ) + then + ( + if + ( if a then b else c ) + then + ( if a then b else c ) + else + ( if a then b else c ) + ) + else + ( + if + ( if a then b else c ) + then + ( if a then b else c ) + else + ( if a then b else c ) + ) + ) + ) ]