From 64fb0246fc2ca034d314b34b66267d0cca5dac3a Mon Sep 17 00:00:00 2001 From: Techarix <19954306+Techatrix@users.noreply.github.com> Date: Tue, 16 May 2023 19:41:46 +0200 Subject: [PATCH] access tree of resolved typed on hover --- src/features/hover.zig | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/features/hover.zig b/src/features/hover.zig index 70c589d..ddbedf2 100644 --- a/src/features/hover.zig +++ b/src/features/hover.zig @@ -70,13 +70,13 @@ pub fn hoverSymbol(server: *Server, decl_handle: Analyser.DeclWithHandle, markup if (rt.type.is_type_val) switch (rt.type.data) { .@"comptime" => |co| try std.fmt.allocPrint(server.arena.allocator(), "{}", .{co.value.index.fmt(co.interpreter.ip.*)}), else => "type", - } else switch (rt.type.data) { // TODO: Investigate random weird numbers like 897 that cause index of bounds + } else switch (rt.type.data) { .pointer, .slice, .error_union, .primitive, - => |p| if (p >= tree.nodes.len) "unknown" else offsets.nodeToSlice(tree, p), - .other => |p| if (p >= tree.nodes.len) "unknown" else switch (tree.nodes.items(.tag)[p]) { + => |p| offsets.nodeToSlice(rt.handle.tree, p), + .other => |p| switch (rt.handle.tree.nodes.items(.tag)[p]) { .container_decl, .container_decl_arg, .container_decl_arg_trailing, @@ -89,7 +89,7 @@ pub fn hoverSymbol(server: *Server, decl_handle: Analyser.DeclWithHandle, markup .tagged_union_two_trailing, .tagged_union_enum_tag, .tagged_union_enum_tag_trailing, - => tree.tokenSlice(tree.nodes.items(.main_token)[p] - 2), // NOTE: This is a hacky nightmare but it works :P + => rt.handle.tree.tokenSlice(rt.handle.tree.nodes.items(.main_token)[p] - 2), // NOTE: This is a hacky nightmare but it works :P .fn_proto, .fn_proto_multi, .fn_proto_one, @@ -102,7 +102,7 @@ pub fn hoverSymbol(server: *Server, decl_handle: Analyser.DeclWithHandle, markup .ptr_type_aligned, .ptr_type_bit_range, .ptr_type_sentinel, - => offsets.nodeToSlice(tree, p), + => offsets.nodeToSlice(rt.handle.tree, p), else => "unknown", // TODO: Implement more "other" type expressions; better safe than sorry }, else => "unknown",