stage2: Propagate error return trace into fn call

This change extends the "lifetime" of the error return trace associated
with an error to include the duration of a function call it is passed
to.

This means that if a function returns an error, its return trace will
include the error return trace for any error inputs. This is needed to
support `testing.expectError` and similar functions.

If a function returns a non-error, we have to clean up any error return
traces created by error-able call arguments.
b529d8e48fCody Tapscott committed on 10/21/2022, 6:22:49 PMparent77720e3
3 files changedLine totals unavailable