Matthias Krüger [Sat, 3 Dec 2022 16:37:43 +0000 (17:37 +0100)]
Rollup merge of #105164 - compiler-errors:revert-import-filter, r=estebank
Restore `use` suggestion for `dyn` method call requiring `Sized`
Add the suggestion back that I accidentally removed in 88f2140d8736329610a4c0bd8000e164c9170537 because I didn't understand that suggestion was actually useful...
Matthias Krüger [Sat, 3 Dec 2022 16:37:41 +0000 (17:37 +0100)]
Rollup merge of #104199 - SarthakSingh31:issue-97417-1, r=cjgillot
Keep track of the start of the argument block of a closure
This removes a call to `tcx.sess.source_map()` from [compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs](https://github.com/rust-lang/rust/compare/master...SarthakSingh31:issue-97417-1?expand=1#diff-8406bbc0d0b43d84c91b1933305df896ecdba0d1f9269e6744f13d87a2ab268a) as required by #97417.
VsCode automatically applied `rustfmt` to the files I edited under `src/tools`. I can undo that if its a problem.
Yutaro Ohno [Sat, 3 Dec 2022 14:37:23 +0000 (23:37 +0900)]
parser: refactoring on recovery from invalid variable declarations
Previously, the `recover_local_after_let` function was called from the
body of the `recover_stmt_local` function. Unifying these two functions
make it more simple and more readable.
bors [Sat, 3 Dec 2022 05:24:35 +0000 (05:24 +0000)]
Auto merge of #105196 - JohnTitor:rollup-8rxqnq6, r=JohnTitor
Rollup of 7 pull requests
Successful merges:
- #104903 (Use ocx.normalize in report_projection_error)
- #105032 (improve doc of into_boxed_slice and impl From<Vec<T>> for Box<[T]>)
- #105100 (Add missing intra-doc link)
- #105181 (Don't add a note for implementing a trait if its inner type is erroneous)
- #105182 (Rustdoc-Json: Don't inline foreign traits)
- #105188 (Don't elide type information when printing E0308 with `-Zverbose`)
- #105189 (rustdoc: clean up redundant CSS on `.rustdoc-toggle.hideme`)
Yuki Okushi [Sat, 3 Dec 2022 03:51:29 +0000 (12:51 +0900)]
Rollup merge of #105182 - aDotInTheVoid:rdj-no-foreign-traits, r=Enselic,GuillaumeGomez
Rustdoc-Json: Don't inline foreign traits
It wasn't done correctly, and [we want to move towards only having local items in the index, and making foreign items easier to resolved](https://rust-lang.zulipchat.com/#narrow/stream/266220-rustdoc/topic/Rustdoc.20JSON.3A.20Include.20All.20Foreign.20Items.3F)
Fixes #105025. This means #105015 is included to test this
bors [Sat, 3 Dec 2022 02:12:48 +0000 (02:12 +0000)]
Auto merge of #105073 - weihanglo:update-cargo, r=weihanglo
Update cargo
9 commits in e027c4b5d25af2119b1956fac42863b9b3242744..f6e737b1e3386adb89333bf06a01f68a91ac5306
2022-11-25 19:44:46 +0000 to 2022-12-02 20:21:24 +0000
- Refactor generate_targets into separate module (https://github.com/rust-lang/cargo/pull/11445)
- Improve file found in multiple build targets warning (https://github.com/rust-lang/cargo/pull/11299)
- Error when precise without -p flag (https://github.com/rust-lang/cargo/pull/11349)
- Improve strategy for selecting targets to be scraped for examples (https://github.com/rust-lang/cargo/pull/11430)
- Aware of compression ratio for unpack size limit (https://github.com/rust-lang/cargo/pull/11337)
- Add test for rustdoc-map generation when using sparse registries (https://github.com/rust-lang/cargo/pull/11403)
- Add error message when `cargo fix` on an empty repo (https://github.com/rust-lang/cargo/pull/11400)
- Store the sparse+ prefix in the SourceId for sparse registries (https://github.com/rust-lang/cargo/pull/11387)
- Update documentation for -Zrustdoc-scrape-examples in the Cargo Book (https://github.com/rust-lang/cargo/pull/11425)
Weihang Lo [Sat, 3 Dec 2022 01:10:54 +0000 (01:10 +0000)]
Update cargo
9 commits in e027c4b5d25af2119b1956fac42863b9b3242744..f6e737b1e3386adb89333bf06a01f68a91ac5306
2022-11-25 19:44:46 +0000 to 2022-12-02 20:21:24 +0000
- Refactor generate_targets into separate module (rust-lang/cargo#11445)
- Improve file found in multiple build targets warning (rust-lang/cargo#11299)
- Error when precise without -p flag (rust-lang/cargo#11349)
- Improve strategy for selecting targets to be scraped for examples (rust-lang/cargo#11430)
- Aware of compression ratio for unpack size limit (rust-lang/cargo#11337)
- Add test for rustdoc-map generation when using sparse registries (rust-lang/cargo#11403)
- Add error message when `cargo fix` on an empty repo (rust-lang/cargo#11400)
- Store the sparse+ prefix in the SourceId for sparse registries (rust-lang/cargo#11387)
- Update documentation for -Zrustdoc-scrape-examples in the Cargo Book (rust-lang/cargo#11425)
bors [Fri, 2 Dec 2022 23:00:48 +0000 (23:00 +0000)]
Auto merge of #105187 - matthiaskrgr:rollup-nxyxpko, r=matthiaskrgr
Rollup of 7 pull requests
Successful merges:
- #105026 (v8a as default aarch64 target)
- #105033 (sparc-struct-abi: work around new tail-call optimization)
- #105144 (Document normalization methods `At::{normalize,query_normalize}`)
- #105155 (rustdoc: clean up help and settings button CSS)
- #105162 (Properly synthesize `FnSig` value during cycle)
- #105163 (Check lifetime param count in `collect_trait_impl_trait_tys`)
- #105185 (Move `normalize_fn_sig` to `TypeErrCtxt`)
Matthias Krüger [Fri, 2 Dec 2022 20:22:49 +0000 (21:22 +0100)]
Rollup merge of #105155 - notriddle:notriddle/flexbox-help-settings-buttons, r=GuillaumeGomez
rustdoc: clean up help and settings button CSS
The old version of this code specified a bunch of different numbers that had to line up just right to get the size it wanted. This version uses flexbox centering, specifies the font size, and lets the browser figure out the rest of the layout automatically.
Matthias Krüger [Fri, 2 Dec 2022 20:22:47 +0000 (21:22 +0100)]
Rollup merge of #105033 - durin42:llvm-16-dont-tail-call-me-bro, r=tmandry
sparc-struct-abi: work around new tail-call optimization
Upstream LLVM change https://reviews.llvm.org/D138741 introduced some new tail-call smarts for SPARC which broke some of the checks in this test. Rather than adjust the test expectations, we add an extra no-args function that can get tail-called or not without hurting the needs of the test.
Matthias Krüger [Fri, 2 Dec 2022 20:22:47 +0000 (21:22 +0100)]
Rollup merge of #105026 - oToToT:aarch64-v8a, r=davidtwco
v8a as default aarch64 target
After https://github.com/llvm/llvm-project/commit/8689f5e landed, LLVM takes the intersection of v8a and v8r as default. This commit brings back v8a support by explicitly specifying v8a in the feature list.
This should solve #97724.
p.s. a bit more context can also be found in https://github.com/llvm/llvm-project/issues/57904#issuecomment-1329555590.
bors [Fri, 2 Dec 2022 20:07:23 +0000 (20:07 +0000)]
Auto merge of #104999 - saethlin:immediate-abort-inlining, r=thomcc
Adjust inlining attributes around panic_immediate_abort
The goal of `panic_immediate_abort` is to permit the panic runtime and formatting code paths to be optimized away. But while poking through some disassembly of a small program compiled with that option, I found that was not the case. Enabling LTO did address that specific issue, but enabling LTO is a steep price to pay for this feature doing its job.
This PR fixes that, by tweaking two things:
* All the slice indexing functions that we `const_eval_select` on get `#[inline]`. `objdump -dC` told me that originally some `_ct` functions could end up in an executable. I won't pretend to understand what's going on there.
* Normalize attributes across all `panic!` wrappers: use `inline(never) + cold` normally, and `inline` when `panic_immediate_abort` is enabled.
But also, with LTO and `panic_immediate_abort` enabled, this patch knocks ~709 kB out of the `.text` segment of `librustc_driver.so`. That is slightly surprising to me, my best theory is that this shifts some inlining earlier in compilation, enabling some subsequent optimizations. The size improvement of `librustc_driver.so` with `panic_immediate_abort` due to this patch is greater with LTO than without LTO, which I suppose backs up this theory.
I do not know how to test this. I would quite like to, because I think what this is solving was an accidental regression. This only works with `-Zbuild-std` which is a cargo flag, and thus can't be used in a rustc codegen test.
r? `@thomcc`
---
I do not seriously think anyone is going to use a compiler built with `panic_immediate_abort`, but I wanted a big complicated Rust program to try this out on, and the compiler is such.
The StableOrd trait can be used to mark types as having a stable
sort order across compilation sessions. Collections that sort their
items in a stable way can safely implement HashStable by
hashing items in sort order.
bors [Fri, 2 Dec 2022 12:50:27 +0000 (12:50 +0000)]
Auto merge of #2697 - Vanille-N:borrow-tracking, r=RalfJung
Reorganizing `stacked_borrows` in anticipation of a different model
These commits reorganize all the code inside the former `stacked_borrows` module and extract the part that really is specific to Stacked Borrows inside the `borrow_tracker/stacked_borrows` submodule.
Everything not specific to SB is put in `borrow_tracker/mod.rs`.
This is so that the future Tree Borrows model can be later added as a second submodule and reuse all the contents of `borrow_tracker/mod.rs`.
This reorganization is accompanied by renamings, mostly from "stacked borrows" to "borrow tracking".
bors [Fri, 2 Dec 2022 12:03:59 +0000 (12:03 +0000)]
Auto merge of #105166 - matthiaskrgr:rollup-s9l6vt2, r=matthiaskrgr
Rollup of 6 pull requests
Successful merges:
- #104614 (Add `type_ascribe!` macro as placeholder syntax for type ascription)
- #105126 (Make `VecDeque::new_in` unstably const)
- #105132 (Migrate summary toggle filter to CSS variable)
- #105136 (clarify comment on Deref promotion)
- #105137 (Add tracking issue number for `file_create_new` feature)
- #105143 (rustdoc: use simpler CSS for setting the font on scraped examples)
Matthias Krüger [Fri, 2 Dec 2022 07:28:08 +0000 (08:28 +0100)]
Rollup merge of #104614 - Nilstrieb:type-ascribe!, r=TaKO8Ki
Add `type_ascribe!` macro as placeholder syntax for type ascription
This makes it still possible to test the internal semantics of type ascription even once the `:`-syntax is removed from the parser. The macro now gets used in a bunch of UI tests that test the semantics and not syntax of type ascription.
I might have forgotten a few tests but this should hopefully be most of them. The remaining ones will certainly be found once type ascription is removed from the parser altogether.
Yiming Lei [Wed, 30 Nov 2022 20:01:00 +0000 (12:01 -0800)]
While parsing enum variant, the error message always disappear
Because the error message that emit out is from main error of parser
The information of enum variant disappears while parsing enum variant with error
We only check the syntax of expecting token, i.e, in case #103869
It will error it without telling the message that this error is from pasring enum variant.
Propagate the sub-error from parsing enum variant to the main error of parser by chaining it with map_err
Check the sub-error before emitting the main error of parser and attach it.
Fix #103869
bors [Fri, 2 Dec 2022 04:24:57 +0000 (04:24 +0000)]
Auto merge of #104963 - petrochenkov:noaddids2, r=cjgillot
rustc_ast_lowering: Stop lowering imports into multiple items
Lower them into a single item with multiple resolutions instead.
This also allows to remove additional `NodId`s and `DefId`s related to those additional items.
Note: one `early_lint_node` call had `!pre_expansion` for the second
argument and the other had `false`. The new single call just has
`!pre_expansion`. This results in a reduction of duplicate error
messages in some `ui-fulldeps` tests. The order of some `ui-fulldeps`
output also changes, but that doesn't matter.