diff options
| -rw-r--r-- | src/odin/printer/visit.odin | 4 | ||||
| -rw-r--r-- | tools/odinfmt/tests/single_line_switch/.snapshots/switch.odin | 21 | ||||
| -rw-r--r-- | tools/odinfmt/tests/single_line_switch/switch.odin | 18 |
3 files changed, 41 insertions, 2 deletions
diff --git a/src/odin/printer/visit.odin b/src/odin/printer/visit.odin index 882ba51..734a3a3 100644 --- a/src/odin/printer/visit.odin +++ b/src/odin/printer/visit.odin @@ -1049,7 +1049,7 @@ visit_stmt :: proc( document = enforce_fit_if_do(v.body, document) case ^Switch_Stmt: if v.partial { - document = cons(document, text("#partial"), break_with_space()) + document = cons(document, text("#partial"), break_with_no_newline()) } if v.label != nil { @@ -1093,7 +1093,7 @@ visit_stmt :: proc( } case ^Type_Switch_Stmt: if v.partial { - document = cons(document, text("#partial"), break_with_space()) + document = cons(document, text("#partial"), break_with_no_newline()) } if v.label != nil { diff --git a/tools/odinfmt/tests/single_line_switch/.snapshots/switch.odin b/tools/odinfmt/tests/single_line_switch/.snapshots/switch.odin index a84d72b..53fd56e 100644 --- a/tools/odinfmt/tests/single_line_switch/.snapshots/switch.odin +++ b/tools/odinfmt/tests/single_line_switch/.snapshots/switch.odin @@ -1,5 +1,7 @@ package single_line_switch +import "core:fmt" + Barrr :: enum { A, B, @@ -25,3 +27,22 @@ main :: proc() { this_is_a_really_long_proc_name :: proc(a, b, c: int) -> int { return a + b + c } + +Number :: union { + int, + uint, +} + +f :: proc( + very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_long_name: Number, +) { + #partial switch value in + very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_long_name { + case: + #partial switch value in + very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_long_name { + case int: fmt.println("Number is an integer") + case: fmt.println("Number is not an integer") + } + } +} diff --git a/tools/odinfmt/tests/single_line_switch/switch.odin b/tools/odinfmt/tests/single_line_switch/switch.odin index 256c3ea..66254c0 100644 --- a/tools/odinfmt/tests/single_line_switch/switch.odin +++ b/tools/odinfmt/tests/single_line_switch/switch.odin @@ -1,5 +1,7 @@ package single_line_switch +import "core:fmt" + Barrr :: enum { A, B, @@ -26,3 +28,19 @@ main :: proc() { this_is_a_really_long_proc_name :: proc(a, b, c: int) -> int { return a + b + c } + +Number :: union { + int, + uint, +} + +f :: proc( very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_long_name: Number,) { + #partial switch value in very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_long_name { + case: + #partial switch value in very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_long_name { + case int: fmt.println("Number is an integer") + case: + fmt.println("Number is not an integer") + } + } +} |