aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanielGavin <danielgavin5@hotmail.com>2024-03-26 19:29:13 +0100
committerDanielGavin <danielgavin5@hotmail.com>2024-03-26 19:29:13 +0100
commit1be454a8b0b6c515d5c89b2363e24fed6e1f0707 (patch)
tree759198cf0ca46144e4334dde536661cfdb0f35dd
parent680728be6752502ad8804989dd33c0753e025fce (diff)
Support relative type
-rw-r--r--src/common/ast.odin6
-rw-r--r--src/server/analysis.odin3
-rw-r--r--src/server/clone.odin4
-rw-r--r--src/server/collector.odin1
-rw-r--r--src/server/semantic_tokens.odin2
5 files changed, 8 insertions, 8 deletions
diff --git a/src/common/ast.odin b/src/common/ast.odin
index a2e5d42..221432b 100644
--- a/src/common/ast.odin
+++ b/src/common/ast.odin
@@ -700,8 +700,11 @@ free_ast_node :: proc(node: ^ast.Node, allocator: mem.Allocator) {
free_ast(n.elem, allocator)
case ^Matrix_Type:
free_ast(n.elem, allocator)
+ case ^Relative_Type:
+ free_ast(n.tag, allocator)
+ free_ast(n.type, allocator)
case:
- panic(fmt.aprintf("free Unhandled node kind: %T", n))
+ panic(fmt.aprintf("free Unhandled node kind: %v", node.derived))
}
mem.free(node, allocator)
@@ -911,7 +914,6 @@ node_equal_node :: proc(a, b: ^ast.Node) -> bool {
case ^Typeid_Type:
return true
case:
- log.warn("Unhandled poly node kind: %T", m)
}
return false
diff --git a/src/server/analysis.odin b/src/server/analysis.odin
index 45e2e74..81f2df9 100644
--- a/src/server/analysis.odin
+++ b/src/server/analysis.odin
@@ -1078,7 +1078,7 @@ internal_resolve_type_expression :: proc(
}
}
case:
- log.warnf("default node kind, internal_resolve_type_expression: %T", v)
+ log.warnf("default node kind, internal_resolve_type_expression: %v", v)
}
return Symbol{}, false
@@ -5075,6 +5075,5 @@ get_document_position_node :: proc(
case ^ast.Or_Return_Expr:
get_document_position(n.expr, position_context)
case:
- log.warnf("Unhandled node kind: %T", n)
}
}
diff --git a/src/server/clone.odin b/src/server/clone.odin
index 09827d1..796bf33 100644
--- a/src/server/clone.odin
+++ b/src/server/clone.odin
@@ -284,8 +284,10 @@ clone_node :: proc(
case ^Type_Assertion:
r.expr = clone_type(r.expr, allocator, unique_strings)
r.type = clone_type(r.type, allocator, unique_strings)
+ case ^Relative_Type:
+ r.tag = clone_type(r.tag, allocator, unique_strings)
+ r.type = clone_type(r.type, allocator, unique_strings)
case:
- //fmt.logf("Unhandled node kind: %T", r)
}
return res
diff --git a/src/server/collector.odin b/src/server/collector.odin
index 935acd7..65d11e9 100644
--- a/src/server/collector.odin
+++ b/src/server/collector.odin
@@ -999,6 +999,5 @@ replace_package_alias_node :: proc(
case ^Multi_Pointer_Type:
replace_package_alias(n.elem, package_map, collection)
case:
- log.warnf("Replace Unhandled node kind: %T", n)
}
}
diff --git a/src/server/semantic_tokens.odin b/src/server/semantic_tokens.odin
index 3e2c6f6..7fafc21 100644
--- a/src/server/semantic_tokens.odin
+++ b/src/server/semantic_tokens.odin
@@ -760,8 +760,6 @@ visit_node :: proc(
visit(n.body, builder, ast_context)
case:
- //log.errorf("unhandled semantic token node %v", n);
- //panic(fmt.tprintf("Missed semantic token handling %v", n));
}
}