-
-
Notifications
You must be signed in to change notification settings - Fork 3k
Open
Labels
contributor friendlyThis issue is limited in scope and/or knowledge of Zig internals.This issue is limited in scope and/or knowledge of Zig internals.enhancementSolving this issue will likely involve adding new logic or components to the codebase.Solving this issue will likely involve adding new logic or components to the codebase.fuzzing
Milestone
Description
Extracted from #20958.
[nix-shell:~/dev/zig/build-release]$ stage3/bin/zig build test-std -Dtest-filter="tokenizer" -Dskip-release -Dskip-non-native -Dskip-libc -Dskip-single-threaded --fuzz --debug-rt --port 41099
Text from screenshot reproduced below:
fn testTokenize(source: [:0]const u8, expected_token_tags: []const Token.Tag) !void {
var tokenizer = Tokenizer.init(source);
for (expected_token_tags) |expected_token_tag| {
const token = tokenizer.next();
try std.testing.expectEqual(expected_token_tag, token.tag);
}
// Last token should always be eof, even when the last token was invalid,
// in which case the tokenizer is in an invalid state, which can only be
// recovered by opinionated means outside the scope of this implementation.
const last_token = tokenizer.next();
try std.testing.expectEqual(Token.Tag.eof, last_token.tag);
try std.testing.expectEqual(source.len, last_token.loc.start);
try std.testing.expectEqual(source.len, last_token.loc.end);
}
For example in the above snippet, the expectEqual
link points to http://127.0.0.1:41099/#.home.andy.dev.zig.lib.std.std.testing.expectEqual
.
Instead, it should point to one of these:
#std.testing.expectEqual
#f123d456
where 123 and 456 are the file and decl indexes respectively.#/home/andy/dev/zig/lib/std/zig/tokenizer.zig:123:456
where 123 and 456 are line and column respectively.
And then the onHashChange
logic needs to respond by loading the appropriate file and scrolling the location into view.
Metadata
Metadata
Assignees
Labels
contributor friendlyThis issue is limited in scope and/or knowledge of Zig internals.This issue is limited in scope and/or knowledge of Zig internals.enhancementSolving this issue will likely involve adding new logic or components to the codebase.Solving this issue will likely involve adding new logic or components to the codebase.fuzzing