When file watching, prepares the step for being re-evaluated. Returns
true if the step was newly invalidated, false if it was already
invalidated.
pub fn invalidateResult(maker: *Maker, step: *Step) bool
pub fn invalidateResult(maker: *Maker, step: *Step) bool {
if (step.state == .precheck_done) return false;
assert(step.pending_deps == 0);
step.state = .precheck_done;
step.reset(maker);
for (step.dependants.items) |dependant_index| {
const dependant = maker.stepByIndex(dependant_index);
_ = invalidateResult(maker, dependant);
dependant.pending_deps += 1;
}
return true;
}