pub fn trace(
func: &Func,
shape: &Shape,
assignment: &Assignment,
edits: &[Edit],
) -> Vec<Fault>Expand description
Everywhere the rewritten function reads a place that is not holding the value it wants.
An empty answer is the one every allocation is supposed to give. Anything else is a compiler
bug rather than a program the compiler cannot handle, which is why crate::run asserts on it
instead of reporting it as a diagnostic.
The function is the rewritten one, the shape is what shape took of it beforehand, and the
edits are the ones the rewrite handed back. The three together are the whole of what the
machine will be asked to run.