aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/odin/printer/visit.odin4
-rw-r--r--tools/odinfmt/tests/single_line_switch/.snapshots/switch.odin21
-rw-r--r--tools/odinfmt/tests/single_line_switch/switch.odin18
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")
+ }
+ }
+}