aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/ast.odin2
-rw-r--r--tests/hover_test.odin10
2 files changed, 11 insertions, 1 deletions
diff --git a/src/server/ast.odin b/src/server/ast.odin
index 07f2169..b872e11 100644
--- a/src/server/ast.odin
+++ b/src/server/ast.odin
@@ -376,7 +376,7 @@ merge_attributes :: proc(attrs: []^ast.Attribute, foreign_attrs: []^ast.Attribut
// a const variable declaration, so we do a quick check here to distinguish the cases.
is_variable_declaration :: proc(expr: ^ast.Expr) -> bool {
#partial switch v in expr.derived {
- case ^ast.Comp_Lit, ^ast.Basic_Lit, ^ast.Type_Cast, ^ast.Call_Expr, ^ast.Binary_Expr:
+ case ^ast.Comp_Lit, ^ast.Basic_Lit, ^ast.Type_Cast, ^ast.Call_Expr, ^ast.Binary_Expr, ^ast.Unary_Expr:
return true
case:
return false
diff --git a/tests/hover_test.odin b/tests/hover_test.odin
index 630f4d7..02cde4e 100644
--- a/tests/hover_test.odin
+++ b/tests/hover_test.odin
@@ -6024,6 +6024,16 @@ ast_hover_proc_poly_params_where_clause :: proc(t: ^testing.T) {
}
test.expect_hover(t, &source, "test.$T: int")
}
+
+@(test)
+ast_hover_constant_unary_expr :: proc(t: ^testing.T) {
+ source := test.Source {
+ main = `package test
+ F{*}OO :: ~u32(0)
+ `,
+ }
+ test.expect_hover(t, &source, "test.FOO :: ~u32(0)")
+}
/*
Waiting for odin fix