stabilize never type - #155499
Conversation
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment has been minimized.
This comment has been minimized.
|
@bors try |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
2895d33 to
3e8df8d
Compare
|
👌 Experiment ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more |
|
🚧 Experiment ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more |
|
🎉 Experiment
Footnotes
|
|
📋 This PR cannot be approved because it currently has the following labels: |
|
Way to ruin a dramatic moment bors /j |
|
@bors rollup=iffy causes breakage |
This comment has been minimized.
This comment has been minimized.
|
💔 I suspect this PR failed tests as part of a rollup After fixing the problem, consider running a try job for the failed job before re-approving. Link to failure: #161685 (comment) |
|
This pull request was unapproved. Auto build was cancelled due to unapproval. Cancelled workflows: |
This is a false positive in cargo-semver-checks (cc @obi1kenobi) |
|
I believe |
|
For an enum with variants I think it is, but in this weird case where it doesn't have any variants it might not be? Regardless, it's something we've been working towards for years so this instance we'll let through for sure. |
This comment has been minimized.
This comment has been minimized.
What is this?This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.Comparing 0a3fa2a (parent) -> e776960 (this PR) Test differencesShow 1825 test diffsStage 1
Stage 2
Additionally, 1756 doctest diffs were found. These are ignored, as they are noisy. Job group index
Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard e7769602aca3770e8d8ea55716becb22e839a579 --output-dir test-dashboardAnd then open Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
|
Finished benchmarking commit (e776960): comparison URL. Overall result: ❌✅ regressions and improvements - please read:Our benchmarks found a performance regression caused by this PR. Next Steps:
@rustbot label: +perf-regression Instruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)Results (primary -3.9%, secondary -1.8%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary -1.2%, secondary -4.5%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeResults (primary -0.1%, secondary -0.1%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Bootstrap: 469.763s -> 471.419s (0.35%) |
|
@JonathanBrouwer Not a false positive. I think that |
|
I think we're all on the same page about the (possible) breakage being fine for this PR. Now purely for our collective curiosity ...
Even if that's the case, does this fall under the "useless code" exception? As in, if that and only that is the only breakage, is that truly SemVer-major given that that code by itself has no purpose?
This was also my first thought. But I admittedly haven't thought enough about the zero-variant case. If we need to add a "has at least one variant" clause, I think that should be easy enough. Type aliases are also a bit of a nightmare for SemVer though, and I definitely haven't even worked out the full set of edge cases yet, let alone implemented all of them in c-s-c. |
|
Also — 🎉🎉🎉 Congrats! So glad this is finally merged, and in such a nice round-numbered release too :) |
View all comments
This PR
!) (!!!)!on all editions (breaking change, see crater report analysis and refresher on never type fallback)Infalliblean alias to!dependency_on_unit_never_type_fallbacklint (there is no more never type fallback to()so this lint can't be triggered)Cat
Tracking
!to a type (RFC 1216) #35121FCPs
!fall back to!#123508 (comment) (stabilization plan, T-lang)Infallible = !#155924 (comment) (makeInfallible = !, T-libs)Related changes
!fall back to!#123748!fall back to!#123508From<!> for T*reservation* impl #160705Experiments
Infallible = !: [experiment][1] mew #155500Infallible = !, and removing reservation impl: [experiment][2] meow mrrrumph #155501Infallible = !change, without fallback change: [experiment][3] meowww #155657Closes #35121
Closes #148922