Merge pull request #351 from leecannon/moved_backwards
Handle tag moved backwards without logging
This commit is contained in:
		
						commit
						3feba5ec0b
					
				@ -68,15 +68,10 @@ const Builder = struct {
 | 
			
		||||
    fn add(self: *Builder, token: ast.TokenIndex, token_type: TokenType, token_modifiers: TokenModifiers) !void {
 | 
			
		||||
        const tree = self.handle.tree;
 | 
			
		||||
        const starts = tree.tokens.items(.start);
 | 
			
		||||
        const tags = tree.tokens.items(.tag);
 | 
			
		||||
        const next_start = starts[token];
 | 
			
		||||
 | 
			
		||||
        if (next_start < self.previous_position) {
 | 
			
		||||
            log.err(
 | 
			
		||||
                "Moved backwards from {} at position {} to {} at {}.",
 | 
			
		||||
                .{ tags[self.previous_token orelse 0], self.previous_position, tags[token], next_start },
 | 
			
		||||
            );
 | 
			
		||||
            return;
 | 
			
		||||
            return error.MovedBackwards;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (self.previous_token) |prev| {
 | 
			
		||||
@ -259,6 +254,7 @@ const WriteTokensError = error{
 | 
			
		||||
    Utf8OverlongEncoding,
 | 
			
		||||
    Utf8EncodesSurrogateHalf,
 | 
			
		||||
    Utf8CodepointTooLarge,
 | 
			
		||||
    MovedBackwards,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
fn writeNodeTokens(
 | 
			
		||||
@ -1048,7 +1044,10 @@ pub fn writeAllSemanticTokens(
 | 
			
		||||
    // reverse the ast from the root declarations
 | 
			
		||||
    var buf: [2]ast.Node.Index = undefined;
 | 
			
		||||
    for (declMembers(handle.tree, 0, &buf)) |child| {
 | 
			
		||||
        try writeNodeTokens(&builder, arena, store, child);
 | 
			
		||||
        writeNodeTokens(&builder, arena, store, child) catch |err| switch (err) {
 | 
			
		||||
            error.MovedBackwards => break,
 | 
			
		||||
            else => |e| return e,
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
    try builder.finish();
 | 
			
		||||
    return builder.toOwnedSlice();
 | 
			
		||||
 | 
			
		||||
@ -100,7 +100,7 @@ const Server = struct {
 | 
			
		||||
 | 
			
		||||
    fn shutdown(self: *Server) void {
 | 
			
		||||
        self.request("shutdown", "{}", null) catch @panic("Could not send shutdown request");
 | 
			
		||||
        waitNoError(self.process) catch |err| @panic("Server error");
 | 
			
		||||
        waitNoError(self.process) catch @panic("Server error");
 | 
			
		||||
        self.process.deinit();
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user