Is this correct? Say you have an edge with more than one output. The first output is dirty and sets `edge->outputs_invalid_` to false, but then this will overwrite the flag to true when it runs for the second output.