aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Gavin <danielgavin5@hotmail.com>2022-04-16 00:20:01 +0200
committerDaniel Gavin <danielgavin5@hotmail.com>2022-04-16 00:20:01 +0200
commita2cd9b1777ce16bc7d8f2beffe502989576f32a0 (patch)
treee0db55cb594b567713ba33cd8fa86bf32f193920
parentf1ff4eee9bc0b9dc9a74c567c36d14eca961c3f4 (diff)
odinfmt: fix union kind and struct poly params.
-rw-r--r--src/odin/printer/visit.odin21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/odin/printer/visit.odin b/src/odin/printer/visit.odin
index 2f45dc1..a017631 100644
--- a/src/odin/printer/visit.odin
+++ b/src/odin/printer/visit.odin
@@ -921,7 +921,7 @@ push_where_clauses :: proc(p: ^Printer, clauses: []^ast.Expr) -> ^Document {
@(private)
visit_poly_params :: proc(p: ^Printer, poly_params: ^ast.Field_List) -> ^Document {
if poly_params != nil {
- return cons(text("("), cons(visit_field_list(p, poly_params, {.Add_Comma, .Enforce_Poly_Names}), text(")")))
+ return cons(text("("), cons(visit_signature_list(p, poly_params), text(")")))
} else {
return empty()
}
@@ -1010,11 +1010,7 @@ visit_expr :: proc(p: ^Printer, expr: ^ast.Expr, called_from: Expr_Called_Type =
document = cons(document, text("]"))
return document
case ^Ident:
- if .Enforce_Poly_Names in options {
- return cons(text("$"), text(v.name))
- } else {
- return text_position(p, v.name, v.pos)
- }
+ return text_position(p, v.name, v.pos)
case ^Deref_Expr:
return cons(visit_expr(p, v.expr), text_token(p, v.op))
case ^Type_Cast:
@@ -1050,6 +1046,15 @@ visit_expr :: proc(p: ^Printer, expr: ^ast.Expr, called_from: Expr_Called_Type =
document = cons(document, visit_poly_params(p, v.poly_params))
+ #partial switch v.kind {
+ case .maybe:
+ document = cons_with_opl(document, text("#maybe"))
+ case .no_nil:
+ document = cons_with_opl(document, text("#no_nil"))
+ case .shared_nil:
+ document = cons_with_opl(document, text("#shared_nil"))
+ }
+
if v.kind == .maybe {
document = cons_with_opl(document, text("#maybe"))
}
@@ -1345,7 +1350,6 @@ List_Option :: enum u8 {
Add_Comma,
Trailing,
Enforce_Newline,
- Enforce_Poly_Names,
Group,
Glue,
}
@@ -1377,9 +1381,6 @@ visit_field_list :: proc(p: ^Printer, list: ^ast.Field_List, options := List_Opt
}
name_options := List_Options{.Add_Comma}
- if .Enforce_Poly_Names in options {
- name_options += {.Enforce_Poly_Names}
- }
if (.Enforce_Newline in options) {
alignment := get_possible_field_alignment(p, list.list)