Recorded by s80 in the backlog; filing so a future change cannot quietly re-open it.
The hazard as originally filed (a non-inlining callee writing a caller's foreign storage) cannot be reached from source today for two reasons that are accidents rather than guarantees: the mut-arg spill reloads the header pointer after the call, so memopt's (token, address) key misses; and the move checker forbids two live Lists sharing a buffer, since let b = a moves and copy a deep-copies.
Either could change for unrelated reasons. If they do, the hazard returns without anyone noticing, because nothing currently tests for it. Wants a test that pins the two accidents as intentional, or the token propagation that makes the question moot.
Recorded by s80 in the backlog; filing so a future change cannot quietly re-open it.
The hazard as originally filed (a non-inlining callee writing a caller's foreign storage) cannot be reached from source today for two reasons that are accidents rather than guarantees: the mut-arg spill reloads the header pointer after the call, so memopt's (token, address) key misses; and the move checker forbids two live Lists sharing a buffer, since let b = a moves and copy a deep-copies.
Either could change for unrelated reasons. If they do, the hazard returns without anyone noticing, because nothing currently tests for it. Wants a test that pins the two accidents as intentional, or the token propagation that makes the question moot.