-
Notifications
You must be signed in to change notification settings - Fork 12.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rollup of 6 pull requests #65885
Rollup of 6 pull requests #65885
Conversation
This is done by moving some data definitions to syntax::expand.
Apply review suggestions Apply review suggestions
Co-authored-by: Steve Klabnik <steve@steveklabnik.com>
Returns a `&core::panic::Location` corresponding to where it was called, also making `Location` a lang item.
This allows us to remove `static_panic_msg` from the SSA<->LLVM boundary, along with its fat pointer representation for &str. Also changes the signature of PanicInfo::internal_contructor to avoid copying. Closes rust-lang#65856.
I took most tests that were testing only for match exhaustiveness, pattern refutability or match arm reachability, and put them in the same test folder.
Stabilize `Option::flatten` - PR: rust-lang#60256 - Tracking issue: rust-lang#60258 @elahn > I was trying to `flat_map()` and found `map().flatten()` does the trick. This has been on nightly for 4 months, can we stabilise it? @ethanboxx > @Centril Helped me get this merged. What is the stabilization process? @Centril > @ethanboxx I'd just file a PR to stabilize it and we'll ask T-libs to FCP. So here I am. I am was unsure what number to put in `since = "-"` so I copied what someone had done in a recent PR.
`std::panic::Location` is a lang_item, add `core::intrinsics::caller_location` (RFC 2091 3/N) [Tracking issue](rust-lang#47809) [RFC text](https://github.com/rust-lang/rfcs/blob/master/text/2091-inline-semantic.md) @eddyb suggested doing this intrinsic implementation ahead of actually implementing the `#[track_caller]` attribute so that there's an easily tested intermediate step between adding the shim and wiring up the attribute.
rustc, rustc_passes: reduce deps on rustc_expand Part of rust-lang#65324. r? @petrochenkov
…etrochenkov librustc_lexer: Enhance documentation This PR enhances documentation state of the `librustc_lexer` (as initiative caused by [rustc-guide#474](rust-lang/rustc-dev-guide#474)), by adding: - Module documentation. - Doc-comments (and a bit of usual comments) in non-obvious (as for me) places. r? @petrochenkov cc @Centril
…ruppe doc: explain why it is unsafe to construct Vec<u8> from Vec<u16>
…r=varkor Gather together usefulness tests I took most tests that were testing only for match exhaustiveness, pattern refutability or match arm reachability, and put them in the same test folder. I found it helpful to have them all in the same place when working on the usefulness algorithm.
@bors r+ p=6 rollup=never |
📌 Commit 606743e has been approved by |
@bors retry |
Rollup of 6 pull requests Successful merges: - #64747 (Stabilize `Option::flatten`) - #65664 (`std::panic::Location` is a lang_item, add `core::intrinsics::caller_location` (RFC 2091 3/N)) - #65792 (rustc, rustc_passes: reduce deps on rustc_expand) - #65849 (librustc_lexer: Enhance documentation) - #65873 (doc: explain why it is unsafe to construct Vec<u8> from Vec<u16>) - #65880 (Gather together usefulness tests) Failed merges: r? @ghost
☀️ Test successful - checks-azure |
📣 Toolstate changed by #65885! Tested on commit 9285d40. 💔 clippy-driver on windows: test-pass → build-fail (cc @mcarton @oli-obk @Manishearth @flip1995 @yaahc @phansch @llogiq, @rust-lang/infra). |
Tested on commit rust-lang/rust@9285d40. Direct link to PR: <rust-lang/rust#65885> 💔 clippy-driver on windows: test-pass → build-fail (cc @mcarton @oli-obk @Manishearth @flip1995 @yaahc @phansch @llogiq, @rust-lang/infra). 💔 clippy-driver on linux: test-pass → build-fail (cc @mcarton @oli-obk @Manishearth @flip1995 @yaahc @phansch @llogiq, @rust-lang/infra). 💔 miri on windows: test-pass → build-fail (cc @oli-obk @eddyb @RalfJung, @rust-lang/infra). 💔 miri on linux: test-pass → build-fail (cc @oli-obk @eddyb @RalfJung, @rust-lang/infra). 🎉 rls on windows: build-fail → test-pass (cc @Xanewok, @rust-lang/infra). 🎉 rls on linux: build-fail → test-pass (cc @Xanewok, @rust-lang/infra).
This caused gigantic compile-time regressions for incremental debug and opt builds, of 100s and 1000s of percent. I suspect #65664 or #65792 is the cause. The other changes are all small. @anp, @Centril: any thoughts? cc @rust-lang/wg-compiler-performance |
Note that a bunch of codegen queries (e.g. |
#65792 seems unlikely as it is just moving some stuff, not actually changing the implementation. |
Just from the title #65664 looks like it could introduce a dependency of machine code or MIR to span information, which is always bad news for incremental compilation. |
It's #65664, see #65664 (comment) for more details. |
Successful merges:
Option::flatten
#64747 (StabilizeOption::flatten
)std::panic::Location
is a lang_item, addcore::intrinsics::caller_location
(RFC 2091 3/N) #65664 (std::panic::Location
is a lang_item, addcore::intrinsics::caller_location
(RFC 2091 3/N))Failed merges:
r? @ghost