Skip to main content

trace

Function trace 

Source
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.