11/28/2019, 5:43 PM
On the mutability thing - I think we currently have an interesting situation with pantsd where (depending on a race condition) we’ll actually invoke every formatter twice for every target, but the second run will no-op (as long as the formatter is deterministic), because when we write the update, we’ll get a watchman event, decide we need to re-run the rule graph, and re-invoke the formatter, which hopefully won’t change the file again