type CleanupProbe { marker: MutSpan, fn drop(self: mutref) -> Void { self.marker[0] = 1 } } fn mark_defer(marker: MutSpan) -> Void { marker[1] = 1 } pub fn main(world: World) -> Void raises { var marker: [2]u8 = [0, 0] if true { defer mark_defer(marker) let probe: owned = CleanupProbe { marker: marker } } if marker[0] == 1 && marker[1] == 1 { check world.out.write("ownership cleanup ok\n") } else { check world.out.write("ownership cleanup failed\n") } }