Validatior should not short-circuit for multiple abs files
result = result && validate(abs, diagnostics);
should be replaced by
result = validate(abs, diagnostics) && result;
if(diagnostics == null && !result) break;
to avoid short-circuiting the validation when we are collecting the diagnostics.
Edited by Maxime Audinot