{
  "id": 6329992,
  "title": "Rust: When Empty Isn't Bottom",
  "url": "https://urgent.news/2026/09/08/rust-when-empty-isnt-bottom",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-08T21:23:18.000Z",
  "source": {
    "name": "Lobsters",
    "slug": "lobsters",
    "url": "https://ettolrach.com/blog/rust_when_empty_isnt_bottom.html"
  },
  "original_language": "en",
  "account": "In August 2026, Rust introduced the empty type to its language, which is represented by the symbol ! or never. Prior to this change, Rust could use ! for function return types, but not for other type annotations. This new feature mostly functions as expected, but there is a surprising aspect: expressions containing ! in their type do not necessarily convert to other types.\n\nThe empty type, abbreviated as !, contains no values or constructors. A function named absurd is created to handle values of type !, which takes any value of that type and returns something of the desired type. However, since there are no values of type !, calling this function is never required.\n\nIn contrast to the empty type, the bottom type also lacks values and constructors. Nonetheless, it employs subtyping and is considered a subtype of all other types. This difference arises because Rust does not support subtyping for all types, unlike Scala, which calls the empty type Nothing and utilizes subtyping. Consequently, in Rust, a panic! is used to return !, as the language lacks subtyping and requires the absurd function to handle such cases.",
  "summary": null,
  "key_points": [
    "Rust introduced empty type ! in August 2026",
    "! type has no values or constructors",
    "! type handled via absurd function in Rust"
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "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."
}