Use error iterator instead of manual looping in diagnostic generation

This commit is contained in:
Alexandros Naskos 2020-05-09 04:02:29 +03:00
parent 01b2c2e328
commit 922559c83a

View File

@ -143,10 +143,8 @@ fn publishDiagnostics(document: *types.TextDocument) !void {
var diagnostics = std.ArrayList(types.Diagnostic).init(&arena.allocator);
if (tree.errors.len > 0) {
var index: usize = 0;
while (index < tree.errors.len) : (index += 1) {
const err = tree.errors.at(index);
var error_it = tree.errors.iterator(0);
while (error_it.next()) |err| {
const loc = tree.tokenLocation(0, err.loc());
var mem_buffer: [256]u8 = undefined;
@ -162,7 +160,8 @@ fn publishDiagnostics(document: *types.TextDocument) !void {
// .relatedInformation = undefined
});
}
} else {
if (tree.errors.len == 0) {
try cacheSane(document);
var decls = tree.root_node.decls.iterator(0);
while (decls.next()) |decl_ptr| {