Skip to content

Bug: Untrue assertion hit #409

@ikskuh

Description

@ikskuh

I'm hitting unreachable in some cases in my source. I sadly cannot strip it down as it only happens once a day or so and isn't reproducible afterwards.

Stack Trace

thread 8321 panic: reached unreachable code
/home/felix/software/zig-linux-x86_64-0.9.0-dev.1343+75cecef63/lib/std/debug.zig:226:14: 0x25f33b in std.debug.assert (zls)
    if (!ok) unreachable; // assertion failure
             ^
/home/felix/projects/forks/zls/src/offsets.zig:180:21: 0x343f01 in offsets.tokenLocation (zls)
    std.debug.assert(token.tag == tag);
                    ^
/home/felix/projects/forks/zls/src/offsets.zig:143:36: 0x343a8c in offsets.tokenLength (zls)
    const token_loc = tokenLocation(tree, token);
                                   ^
/home/felix/projects/forks/zls/src/semantic_tokens.zig:128:43: 0x3423ac in semantic_tokens.Builder.handleToken (zls)
        const length = offsets.tokenLength(tree, tok, self.encoding);
                                          ^
/home/felix/projects/forks/zls/src/semantic_tokens.zig:82:32: 0x3ae87b in semantic_tokens.Builder.add (zls)
                try handleToken(self, i);
                               ^
/home/felix/projects/forks/zls/src/semantic_tokens.zig:185:24: 0x31e86b in semantic_tokens.writeNodeTokens (zls)
        try builder.add(ti, tok_type, tok_mod);
                       ^
/home/felix/projects/forks/zls/src/semantic_tokens.zig:315:31: 0x31dfc9 in semantic_tokens.writeNodeTokens (zls)
                    try await @asyncCall(child_frame, {}, writeNodeTokens, .{ builder, arena, store, child });
                              ^
/home/felix/projects/forks/zls/src/semantic_tokens.zig:472:27: 0x32c643 in semantic_tokens.writeNodeTokens (zls)
                try await @asyncCall(child_frame, {}, writeNodeTokens, .{ builder, arena, store, node_data[node].rhs });
                          ^
/home/felix/projects/forks/zls/src/semantic_tokens.zig:393:31: 0x31feba in semantic_tokens.writeNodeTokens (zls)
                    try await @asyncCall(child_frame, {}, writeNodeTokens, .{ builder, arena, store, child });
                              ^
/home/felix/projects/forks/zls/src/semantic_tokens.zig:345:23: 0x31ee76 in semantic_tokens.writeNodeTokens (zls)
            try await @asyncCall(child_frame, {}, writeNodeTokens, .{ builder, arena, store, var_decl.ast.init_node });
                      ^
/home/felix/projects/forks/zls/src/semantic_tokens.zig:1024:24: 0x2c6cc8 in semantic_tokens.writeAllSemanticTokens (zls)
        writeNodeTokens(&builder, arena, store, child) catch |err| switch (err) {
                       ^
/home/felix/projects/forks/zls/src/main.zig:1340:71: 0x2b4e59 in semanticTokensFullHandler (zls)
        const token_array = try semantic_tokens.writeAllSemanticTokens(arena, &document_store, handle, offset_encoding);
                                                                      ^
/home/felix/projects/forks/zls/src/main.zig:1614:53: 0x2954e8 in processJsonRpc (zls)
                    done = extractErr(method_info[2](arena, id, request_obj, config));
                                                    ^
/home/felix/projects/forks/zls/src/main.zig:1857:27: 0x288584 in main (zls)
        try processJsonRpc(&arena, &json_parser, buf, config);
                          ^
/home/felix/software/zig-linux-x86_64-0.9.0-dev.1343+75cecef63/lib/std/start.zig:527:37: 0x27ee9a in std.start.callMain (zls)
            const result = root.main() catch |err| {
                                    ^
/home/felix/software/zig-linux-x86_64-0.9.0-dev.1343+75cecef63/lib/std/start.zig:469:12: 0x26305e in std.start.callMainWithArgs (zls)
    return @call(.{ .modifier = .always_inline }, callMain, .{});
           ^
/home/felix/software/zig-linux-x86_64-0.9.0-dev.1343+75cecef63/lib/std/start.zig:383:17: 0x2620e6 in std.start.posixCallMainAndExit (zls)
    std.os.exit(@call(.{ .modifier = .always_inline }, callMainWithArgs, .{ argc, argv, envp }));
                ^
/home/felix/software/zig-linux-x86_64-0.9.0-dev.1343+75cecef63/lib/std/start.zig:296:5: 0x261ef2 in std.start._start (zls)
    @call(.{ .modifier = .never_inline }, posixCallMainAndExit, .{});
    ^
[Info  - 18:45:47] Connection to server got closed. Server will restart.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions