Skip to main content
Next (unreleased) · docs c218d875 · core f63c1e69 · built 2026-10-26 22:39 UTC

Written function types are move-only, with no copy qualifier or Erased state yet

Gap​

RFC-0166 (v0.13.0) makes a written function type lower to a concrete move-only type and erases copyability where a value flows into such a slot. The full surface (a copy |T| -> U qualifier for an explicitly copyable callable, and a distinct "capability unknown" state) is RFC-0163, rescheduled to v0.18.1, which refines the move-only state rather than replacing it.

Impact​

A closure that could be copied loses that once it passes through a slot with a written function type, and there is no way to require or preserve copyability there.

Affects​

Resolution​

Planned, tracked as metel-core#936 (RFC-0163).