Skip to content

#83's original shape is unreachable only by two lowering accidents #93

Description

@mfwolffe

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions