{
  "id": 83139,
  "title": "Rust Project Goals: Immobile types and guaranteed destructors",
  "url": "https://urgent.news/2026/08/03/rust-project-goals-immobile-types-and-guaranteed-destructors",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-08-03T11:13:13.000Z",
  "source": {
    "name": "Lobsters",
    "slug": "lobsters",
    "url": "https://github.com/rust-lang/rust-project-goals/blob/main/src/2026/move-trait.md"
  },
  "original_language": "en",
  "account": "The Rust programming language is set to introduce new traits that will clarify the operations possible on a type. Currently, Rust assumes all types can be moved and forgotten, but this proposal seeks to make these capabilities explicit. The concept of the Move and Forget traits will allow types to opt out of these operations, providing a more precise type system.\n\nHistorically, Rust has assumed that all values can be moved and forgotten without running destructors. However, some types, such as immobile types (e.g., certain self-referential async futures) and types requiring guaranteed destructors (e.g., scoped task handles), need to opt out of these capabilities. The current solution, Pin, introduces significant complexity when encoding immovability as a property of places rather than types.\n\nThe proposed Move trait will make the movability of a type explicit, ensuring that types implementing !Move cannot be moved and must maintain a stable address throughout their existence. This simplifies immovability as a type property, rather than a place property. Similarly, the Forget trait will let types opt out of being forgettable, enabling patterns like safe scoped spawn for async. With !Forget, the destructor of a handle is guaranteed to run, preventing the task from accessing dangling references after the scope exits.\n\nThis initiative is an alternative to Project Goal 2025H2, which focuses on experimenting with Pin ergonomics. The Move and Forget traits will not resolve Pin's duplicate definition issue, but they will offer a different approach to encoding immovable types in Rust. The goal is to deprecate Pin entirely in the future, as Rust promises to remain backwards-compatible indefinitely. The Move proposal is intended as an alternative to Pin, aiming to improve the encoding of immovable types without altering the language itself.",
  "summary": null,
  "key_points": [
    "Rust will introduce Move and Forget traits to clarify immovable types and guaranteed destructors.",
    "Move trait makes movability of a type explicit, ensuring types implementing !Move cannot be moved.",
    "Forget trait allows types to opt out of being forgettable, guaranteeing destructor execution."
  ],
  "editors_take": null,
  "illustration": "https://urgent.news/ill/83139.png",
  "coverage": {
    "outlets": 2,
    "also_reported_by": [
      {
        "outlet": "Hacker News Best",
        "title": "Rust project goals: Immobile types and guaranteed destructors",
        "url": "https://urgent.news/2026/08/03/rust-project-goals-immobile-types-and-guaranteed-destructors-100382",
        "published": "2026-08-03T06:42:00.000Z"
      }
    ]
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}