aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Gavin <danielgavin5@hotmail.com>2022-02-05 00:41:55 +0100
committerDaniel Gavin <danielgavin5@hotmail.com>2022-02-05 00:41:55 +0100
commitd62b41847278bc3902da98e0a072b0f0ab1dc7ca (patch)
tree748cb433f5308c2377c7d61835828f145bec970f /src
parent7c4f2e8aaf32708f13687c1b8413036e525268e3 (diff)
Fix semantic token call expression always being treated as function. Fix float basic parsing.
Diffstat (limited to 'src')
-rw-r--r--src/analysis/analysis.odin2
-rw-r--r--src/server/semantic_tokens.odin6
2 files changed, 3 insertions, 5 deletions
diff --git a/src/analysis/analysis.odin b/src/analysis/analysis.odin
index 5a374a5..9ca6270 100644
--- a/src/analysis/analysis.odin
+++ b/src/analysis/analysis.odin
@@ -798,6 +798,8 @@ resolve_basic_lit :: proc(ast_context: ^AstContext, basic_lit: ast.Basic_Lit) ->
value.type = .Integer;
} else if v, ok := strconv.parse_bool(basic_lit.tok.text); ok {
value.type = .Bool;
+ } else if v, ok := strconv.parse_f64(basic_lit.tok.text); ok {
+ value.type = .Float;
} else {
value.type = .String;
}
diff --git a/src/server/semantic_tokens.odin b/src/server/semantic_tokens.odin
index ac43b9d..389d34c 100644
--- a/src/server/semantic_tokens.odin
+++ b/src/server/semantic_tokens.odin
@@ -276,11 +276,7 @@ visit_node :: proc(node: ^ast.Node, builder: ^SemanticTokenBuilder, ast_context:
visit(n.list, builder, ast_context);
visit(n.body, builder, ast_context);
case Call_Expr:
- if ident, ok := n.expr.derived.(Ident); ok {
- write_semantic_node(builder, n.expr, ast_context.file.src, .Function, .None);
- } else {
- visit(n.expr, builder, ast_context);
- }
+ visit(n.expr, builder, ast_context);
visit(n.args, builder, ast_context);
case Implicit_Selector_Expr:
write_semantic_node(builder, n.field, ast_context.file.src, .Enum, .None);