Skip to content

[experiment][1] mew - #155500

Closed
WaffleLapkin wants to merge 16 commits into
rust-lang:mainfrom
WaffleLapkin:make-infallible-never
Closed

[experiment][1] mew#155500
WaffleLapkin wants to merge 16 commits into
rust-lang:mainfrom
WaffleLapkin:make-infallible-never

Conversation

@WaffleLapkin

Copy link
Copy Markdown
Member

No description provided.

@rustbot rustbot added A-rustdoc-js Area: Rustdoc's JS front-end A-rustdoc-json Area: Rustdoc JSON backend A-rustdoc-search Area: Rustdoc's search feature S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-clippy Relevant to the Clippy team. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rust-analyzer Relevant to the rust-analyzer team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. labels Apr 18, 2026
@WaffleLapkin

Copy link
Copy Markdown
Member Author

@bors try

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Apr 18, 2026
@rust-bors

rust-bors Bot commented Apr 19, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 1bdcb63 (1bdcb63291ccffc030f8223f6f978568dd240e3e, parent: b2f1ccf524a3a4cf9c34545167cc23b659cf1cbd)

@WaffleLapkin
WaffleLapkin force-pushed the make-infallible-never branch from e51d87b to 58bbf50 Compare April 19, 2026 01:05
@WaffleLapkin

Copy link
Copy Markdown
Member Author

@craterbot

Copy link
Copy Markdown
Collaborator

👌 Experiment pr-155500 created and queued.
🤖 Automatically detected try build 1bdcb63
⚠️ Try build based on commit e51d87b, but latest commit is 58bbf50. Did you forget to make a new try build?
🔍 You can check out the queue and this experiment's details.

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot craterbot added S-waiting-on-crater Status: Waiting on a crater run to be completed. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Apr 19, 2026
@craterbot

Copy link
Copy Markdown
Collaborator

🚧 Experiment pr-155500 is now running

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot

Copy link
Copy Markdown
Collaborator

🎉 Experiment pr-155500 is completed!
📊 3315 regressed and 0 fixed (9024 total)
📊 1169 spurious results on the retry-regressed-list.txt, consider a retry1 if this is a significant amount.
📰 Open the summary report.

⚠️ If you notice any spurious failure please add them to the denylist!
ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

Footnotes

  1. re-run the experiment with crates=https://crater-reports.s3.amazonaws.com/pr-155500/retry-regressed-list.txt

@craterbot craterbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-crater Status: Waiting on a crater run to be completed. labels Apr 20, 2026
@WaffleLapkin

Copy link
Copy Markdown
Member Author

@craterbot check p=1 name=155501-infallible-never-with-reservation start=try#5ec4d3b0c83717313176eefa7d71e9d36dc83355 end=try#1bdcb63291ccffc030f8223f6f978568dd240e3e crates=https://crater-reports.s3.amazonaws.com/pr-154887/retry-regressed-list.txt

Failures of this PR, on top of #155501 (i.e. what is broken by the reservation impl if infallible is never)

@craterbot

Copy link
Copy Markdown
Collaborator

👌 Experiment 155501-infallible-never-with-reservation created and queued.
🔍 You can check out the queue and this experiment's details.

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot craterbot added S-waiting-on-crater Status: Waiting on a crater run to be completed. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Apr 21, 2026
@rust-bors

This comment has been minimized.

@craterbot

Copy link
Copy Markdown
Collaborator

🚧 Experiment 155501-infallible-never-with-reservation is now running

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot

Copy link
Copy Markdown
Collaborator

🎉 Experiment 155501-infallible-never-with-reservation is completed!
📊 14 regressed and 0 fixed (9025 total)
📊 916 spurious results on the retry-regressed-list.txt, consider a retry1 if this is a significant amount.
📰 Open the summary report.

⚠️ If you notice any spurious failure please add them to the denylist!
ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

Footnotes

  1. re-run the experiment with crates=https://crater-reports.s3.amazonaws.com/155501-infallible-never-with-reservation/retry-regressed-list.txt

@rust-log-analyzer

This comment has been minimized.

@WaffleLapkin
WaffleLapkin force-pushed the make-infallible-never branch from 33fee27 to 1a28c6f Compare June 16, 2026 20:20
@rust-log-analyzer

This comment has been minimized.

@WaffleLapkin
WaffleLapkin force-pushed the make-infallible-never branch from 1a28c6f to 1147509 Compare June 17, 2026 10:07
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job aarch64-gnu-llvm-21-1 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
   Compiling rustc_next_trait_solver v0.0.0 (/checkout/compiler/rustc_next_trait_solver)
warning: unreachable statement
   --> compiler/rustc_next_trait_solver/src/solve/normalizes_to.rs:370:25
    |
369 |                         ecx.opaque_accesses.rerun_always(RerunReason::FetchEligibleAssocItem)?;
    |                         ---------------------------------------------------------------------- any code following this expression is unreachable
370 |                         return Err(NoSolution.into());
    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
    |
    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default

[RUSTC-TIMING] rustc_proc_macro test:false 7.304
   Compiling rand v0.8.5
warning: unreachable statement
   --> compiler/rustc_next_trait_solver/src/solve/trait_goals.rs:243:17
    |
242 |                 ecx.opaque_accesses.rerun_always(RerunReason::AutoTraitLeakage)?;
    |                 ---------------------------------------------------------------- any code following this expression is unreachable
243 |                 return Err(NoSolution.into());
    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement

[RUSTC-TIMING] rand test:false 1.914

@rust-bors

rust-bors Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

☔ The latest upstream changes (presumably #158043) made this pull request unmergeable. Please resolve the merge conflicts by rebasing.

JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 24, 2026
… r=JonathanBrouwer

stabilize never type

### This PR

- stabilizes the [never type](https://doc.rust-lang.org/stable/std/primitive.never.html) (aka `!`) (!!!)
- sets the [never type fallback](https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html) to `!` on all editions (breaking change, see [crater report analysis](rust-lang#155499 (comment)) and [refresher on never type fallback](rust-lang#155499 (comment)))
- makes `Infallible` an alias to `!`
- removes `dependency_on_unit_never_type_fallback` lint (there is no more never type fallback to `()` so this lint can't be triggered)

### Cat
<img width="1024" height="683" alt="52270233795_5979a3174d_b" src="https://github.com/user-attachments/assets/f6b4737e-32ef-4c33-86b2-76b81673cf20" />

### Tracking

- rust-lang#35121
- rust-lang#148922

### FCPs

- rust-lang#123508 (comment) (stabilization plan, T-lang)
- rust-lang#155499 (comment) (never type stabilization modulo bugs, T-lang)
- rust-lang#155924 (comment) (make `Infallible = !`, T-libs)

### Related changes

- Lint bump: rust-lang#141937
- Rust 2024 edition change:
   - rust-lang#123748
   - rust-lang#123508
- Various changes to lessen the effect of the breaking changes:
   - rust-lang#157820
   - rust-lang#156047
   - rust-lang#160705
- Never type documentation changes: rust-lang#158370 (blocked on this pr)

### Experiments

- Fallback change and never type stabilization:
  - Run: rust-lang#155499 (comment)
  - Analysis: rust-lang#155499 (comment)
  - Status of backports: rust-lang#155499 (comment)
- Fallback change, never type stabilization and making `Infallible = !`: rust-lang#155500
- Fallback change, never type stabilization, making `Infallible = !`, and removing reservation impl: rust-lang#155501
- Never type stabilization and `Infallible = !` change, _without_ fallback change: rust-lang#155657

---

Closes rust-lang#35121
Closes rust-lang#148922
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 24, 2026
… r=JonathanBrouwer

stabilize never type

### This PR

- stabilizes the [never type](https://doc.rust-lang.org/stable/std/primitive.never.html) (aka `!`) (!!!)
- sets the [never type fallback](https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html) to `!` on all editions (breaking change, see [crater report analysis](rust-lang#155499 (comment)) and [refresher on never type fallback](rust-lang#155499 (comment)))
- makes `Infallible` an alias to `!`
- removes `dependency_on_unit_never_type_fallback` lint (there is no more never type fallback to `()` so this lint can't be triggered)

### Cat
<img width="1024" height="683" alt="52270233795_5979a3174d_b" src="https://github.com/user-attachments/assets/f6b4737e-32ef-4c33-86b2-76b81673cf20" />

### Tracking

- rust-lang#35121
- rust-lang#148922

### FCPs

- rust-lang#123508 (comment) (stabilization plan, T-lang)
- rust-lang#155499 (comment) (never type stabilization modulo bugs, T-lang)
- rust-lang#155924 (comment) (make `Infallible = !`, T-libs)

### Related changes

- Lint bump: rust-lang#141937
- Rust 2024 edition change:
   - rust-lang#123748
   - rust-lang#123508
- Various changes to lessen the effect of the breaking changes:
   - rust-lang#157820
   - rust-lang#156047
   - rust-lang#160705
- Never type documentation changes: rust-lang#158370 (blocked on this pr)

### Experiments

- Fallback change and never type stabilization:
  - Run: rust-lang#155499 (comment)
  - Analysis: rust-lang#155499 (comment)
  - Status of backports: rust-lang#155499 (comment)
- Fallback change, never type stabilization and making `Infallible = !`: rust-lang#155500
- Fallback change, never type stabilization, making `Infallible = !`, and removing reservation impl: rust-lang#155501
- Never type stabilization and `Infallible = !` change, _without_ fallback change: rust-lang#155657

---

Closes rust-lang#35121
Closes rust-lang#148922
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 24, 2026
… r=JonathanBrouwer

stabilize never type

### This PR

- stabilizes the [never type](https://doc.rust-lang.org/stable/std/primitive.never.html) (aka `!`) (!!!)
- sets the [never type fallback](https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html) to `!` on all editions (breaking change, see [crater report analysis](rust-lang#155499 (comment)) and [refresher on never type fallback](rust-lang#155499 (comment)))
- makes `Infallible` an alias to `!`
- removes `dependency_on_unit_never_type_fallback` lint (there is no more never type fallback to `()` so this lint can't be triggered)

### Cat
<img width="1024" height="683" alt="52270233795_5979a3174d_b" src="https://github.com/user-attachments/assets/f6b4737e-32ef-4c33-86b2-76b81673cf20" />

### Tracking

- rust-lang#35121
- rust-lang#148922

### FCPs

- rust-lang#123508 (comment) (stabilization plan, T-lang)
- rust-lang#155499 (comment) (never type stabilization modulo bugs, T-lang)
- rust-lang#155924 (comment) (make `Infallible = !`, T-libs)

### Related changes

- Lint bump: rust-lang#141937
- Rust 2024 edition change:
   - rust-lang#123748
   - rust-lang#123508
- Various changes to lessen the effect of the breaking changes:
   - rust-lang#157820
   - rust-lang#156047
   - rust-lang#160705
- Never type documentation changes: rust-lang#158370 (blocked on this pr)

### Experiments

- Fallback change and never type stabilization:
  - Run: rust-lang#155499 (comment)
  - Analysis: rust-lang#155499 (comment)
  - Status of backports: rust-lang#155499 (comment)
- Fallback change, never type stabilization and making `Infallible = !`: rust-lang#155500
- Fallback change, never type stabilization, making `Infallible = !`, and removing reservation impl: rust-lang#155501
- Never type stabilization and `Infallible = !` change, _without_ fallback change: rust-lang#155657

---

Closes rust-lang#35121
Closes rust-lang#148922
rust-bors Bot pushed a commit that referenced this pull request Aug 24, 2026
…Brouwer

stabilize never type



### This PR

- stabilizes the [never type](https://doc.rust-lang.org/stable/std/primitive.never.html) (aka `!`) (!!!)
- sets the [never type fallback](https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html) to `!` on all editions (breaking change, see [crater report analysis](#155499 (comment)) and [refresher on never type fallback](#155499 (comment)))
- makes `Infallible` an alias to `!`
- removes `dependency_on_unit_never_type_fallback` lint (there is no more never type fallback to `()` so this lint can't be triggered)

### Cat
<img width="1024" height="683" alt="52270233795_5979a3174d_b" src="https://github.com/user-attachments/assets/f6b4737e-32ef-4c33-86b2-76b81673cf20" />

### Tracking

- #35121
- #148922

### FCPs

- #123508 (comment) (stabilization plan, T-lang)
- #155499 (comment) (never type stabilization modulo bugs, T-lang)
- #155924 (comment) (make `Infallible = !`, T-libs)

### Related changes

- Lint bump: #141937
- Rust 2024 edition change:
   - #123748
   - #123508
- Various changes to lessen the effect of the breaking changes:
   - #157820
   - #156047
   - #160705
- Never type documentation changes: #158370 (blocked on this pr)

### Experiments

- Fallback change and never type stabilization:
  - Run: #155499 (comment)
  - Analysis: #155499 (comment)
  - Status of backports: #155499 (comment)
- Fallback change, never type stabilization and making `Infallible = !`: #155500
- Fallback change, never type stabilization, making `Infallible = !`, and removing reservation impl: #155501
- Never type stabilization and `Infallible = !` change, _without_ fallback change: #155657

---

Closes #35121
Closes #148922
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 24, 2026
… r=JonathanBrouwer

stabilize never type

### This PR

- stabilizes the [never type](https://doc.rust-lang.org/stable/std/primitive.never.html) (aka `!`) (!!!)
- sets the [never type fallback](https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html) to `!` on all editions (breaking change, see [crater report analysis](rust-lang#155499 (comment)) and [refresher on never type fallback](rust-lang#155499 (comment)))
- makes `Infallible` an alias to `!`
- removes `dependency_on_unit_never_type_fallback` lint (there is no more never type fallback to `()` so this lint can't be triggered)

### Cat
<img width="1024" height="683" alt="52270233795_5979a3174d_b" src="https://github.com/user-attachments/assets/f6b4737e-32ef-4c33-86b2-76b81673cf20" />

### Tracking

- rust-lang#35121
- rust-lang#148922

### FCPs

- rust-lang#123508 (comment) (stabilization plan, T-lang)
- rust-lang#155499 (comment) (never type stabilization modulo bugs, T-lang)
- rust-lang#155924 (comment) (make `Infallible = !`, T-libs)

### Related changes

- Lint bump: rust-lang#141937
- Rust 2024 edition change:
   - rust-lang#123748
   - rust-lang#123508
- Various changes to lessen the effect of the breaking changes:
   - rust-lang#157820
   - rust-lang#156047
   - rust-lang#160705
- Never type documentation changes: rust-lang#158370 (blocked on this pr)

### Experiments

- Fallback change and never type stabilization:
  - Run: rust-lang#155499 (comment)
  - Analysis: rust-lang#155499 (comment)
  - Status of backports: rust-lang#155499 (comment)
- Fallback change, never type stabilization and making `Infallible = !`: rust-lang#155500
- Fallback change, never type stabilization, making `Infallible = !`, and removing reservation impl: rust-lang#155501
- Never type stabilization and `Infallible = !` change, _without_ fallback change: rust-lang#155657

---

Closes rust-lang#35121
Closes rust-lang#148922
rust-bors Bot pushed a commit that referenced this pull request Aug 24, 2026
…Brouwer

stabilize never type



### This PR

- stabilizes the [never type](https://doc.rust-lang.org/stable/std/primitive.never.html) (aka `!`) (!!!)
- sets the [never type fallback](https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html) to `!` on all editions (breaking change, see [crater report analysis](#155499 (comment)) and [refresher on never type fallback](#155499 (comment)))
- makes `Infallible` an alias to `!`
- removes `dependency_on_unit_never_type_fallback` lint (there is no more never type fallback to `()` so this lint can't be triggered)

### Cat
<img width="1024" height="683" alt="52270233795_5979a3174d_b" src="https://github.com/user-attachments/assets/f6b4737e-32ef-4c33-86b2-76b81673cf20" />

### Tracking

- #35121
- #148922

### FCPs

- #123508 (comment) (stabilization plan, T-lang)
- #155499 (comment) (never type stabilization modulo bugs, T-lang)
- #155924 (comment) (make `Infallible = !`, T-libs)

### Related changes

- Lint bump: #141937
- Rust 2024 edition change:
   - #123748
   - #123508
- Various changes to lessen the effect of the breaking changes:
   - #157820
   - #156047
   - #160705
- Never type documentation changes: #158370 (blocked on this pr)

### Experiments

- Fallback change and never type stabilization:
  - Run: #155499 (comment)
  - Analysis: #155499 (comment)
  - Status of backports: #155499 (comment)
- Fallback change, never type stabilization and making `Infallible = !`: #155500
- Fallback change, never type stabilization, making `Infallible = !`, and removing reservation impl: #155501
- Never type stabilization and `Infallible = !` change, _without_ fallback change: #155657

---

Closes #35121
Closes #148922
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-rustdoc-js Area: Rustdoc's JS front-end A-rustdoc-json Area: Rustdoc JSON backend A-rustdoc-search Area: Rustdoc's search feature F-never_type `#![feature(never_type)]` S-experimental Status: Ongoing experiment that does not require reviewing and won't be merged in its current state. T-clippy Relevant to the Clippy team. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rust-analyzer Relevant to the rust-analyzer team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants