-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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 8 pull requests #88992
Rollup of 8 pull requests #88992
Conversation
This reverts commit 64acb7d.
This reverts commit d59b1f1.
This reverts commit 5b4bc05.
This reverts commit 8a1dd69.
…the impl block Currently, for the following code, the compiler produces the errors like the following error: ```rust struct Type<T> impl<T: Clone> Type<T> { fn const f() {} } ``` ```text error[E0658]: trait bounds other than `Sized` on const fn parameters are unstable --> ./test.rs:3:6 | 3 | impl<T: Clone> Type<T> { | ^ | = note: see issue rust-lang#57563 <rust-lang#57563> for more information = help: add `#![feature(const_fn_trait_bound)]` to the crate attributes to enable ``` This can be confusing (especially to newcomers) since the error mentions "const fn parameters", but highlights only the impl. This commits adds function highlighting, changing the error to the following: ```text error[E0658]: trait bounds other than `Sized` on const fn parameters are unstable --> ./test.rs:3:6 | 3 | impl<T: Clone> Type<T> { | ^ 4 | pub const fn f() {} | ---------------- function declared as const here | = note: see issue rust-lang#57563 <rust-lang#57563> for more information = help: add `#![feature(const_fn_trait_bound)]` to the crate attributes to enable ```
Since 88839 `min_align_of` is lowered to AlignOf operator.
This disables the remap_cwd_bin test which is failing on windows, and adds a test for --remap-path-prefix making a bin crate instead, to see if it will fail the same way.
These tests fail on Windows, as the build is not deterministic there for bin targets. Issue rust-lang#88982 is filed for this problem.
…haelwoerister Introduce -Z remap-cwd-prefix switch This switch remaps any absolute paths rooted under the current working directory to a new value. This includes remapping the debug info in `DW_AT_comp_dir` and `DW_AT_decl_file`. Importantly, this flag does not require passing the current working directory to the compiler, such that the command line can be run on any machine (with the same input files) and produce the same results. This is critical property for debugging compiler issues that crop up on remote machines. This is based on adetaylor's rust-lang@dbc4ae7 Major Change Proposal: rust-lang/compiler-team#450 Discussed on rust-lang#38322. Would resolve issue rust-lang#87325.
…xpr-parse, r=nagisa Accept `m!{ .. }.method()` and `m!{ .. }?` statements. This PR fixes something that I keep running into when using `quote!{}.into()` in a proc macro to convert the `proc_macro2::TokenStream` to a `proc_macro::TokenStream`: Before: ``` error: expected expression, found `.` --> src/lib.rs:6:6 | 4 | quote! { 5 | ... 6 | }.into() | ^ expected expression ``` After: ``` ``` (No output, compiles fine.) --- Context: For expressions like `{ 1 }` and `if true { 1 } else { 2 }`, we accept them as full statements without a trailing `;`, which means the following is not accepted: ```rust { 1 } - 1 // error ``` since that is parsed as two statements: `{ 1 }` and `-1`. Syntactically correct, but the type of `{ 1 }` should be `()` as there is no `;`. However, for specifically `.` and `?` after the `}`, we do [continue parsing it as an expression](https://github.com/rust-lang/rust/blob/13db8440bbbe42870bc828d4ec3e965b38670277/compiler/rustc_parse/src/parser/expr.rs#L864-L876): ```rust { "abc" }.len(); // ok ``` For braced macro invocations, we do not do this: ```rust vec![1, 2, 3].len(); // ok vec!{1, 2, 3}.len(); // error ``` (It parses `vec!{1, 2, 3}` as a full statement, and then complains about `.len()` not being a valid expression.) This PR changes this to also look for a `.` and `?` after a braced macro invocation. We can be sure the macro is an expression and not a full statement in those cases, since no statement can start with a `.` or `?`.
… r=davidtwco Revert anon union parsing Revert PR rust-lang#84571 and rust-lang#85515, which implemented anonymous union parsing in a manner that broke the context-sensitivity for the `union` keyword and thus broke stable Rust code. Fix rust-lang#88583.
…r=estebank feat(rustc_typeck): suggest removing bad parens in `(recv.method)()` Fixes rust-lang#88803
…_a_bound_in_impl_block_error, r=estebank Highlight the `const fn` if error happened because of a bound on the impl block Currently, for the following code, the compiler produces the errors like the following: ```rust struct Type<T>(T); impl<T: Clone> Type<T> { const fn f() {} } ``` ```text error[E0658]: trait bounds other than `Sized` on const fn parameters are unstable --> ./test.rs:3:6 | 3 | impl<T: Clone> Type<T> { | ^ | = note: see issue rust-lang#57563 <rust-lang#57563> for more information = help: add `#![feature(const_fn_trait_bound)]` to the crate attributes to enable ``` This can be confusing (especially to newcomers) since the error mentions "const fn parameters", but highlights only the impl. This PR adds function highlighting, changing the error to the following: ```text error[E0658]: trait bounds other than `Sized` on const fn parameters are unstable --> ./test.rs:3:6 | 3 | impl<T: Clone> Type<T> { | ^ 4 | pub const fn f() {} | ---------------- function declared as const here | = note: see issue rust-lang#57563 <rust-lang#57563> for more information = help: add `#![feature(const_fn_trait_bound)]` to the crate attributes to enable ``` --- I've originally wanted to point directly to `const` token, but couldn't find a way to get it's span. It seems like this span is lost during the AST -> HIR lowering. Also, since the errors for object casts in `const fn`s (`&T` -> `&dyn Trait`) seem to trigger the same error, this PR accidentally changes these errors too. Not sure if it's desired or how to fix this. P.S. it's my first time contributing to diagnostics, so feedback is very appreciated! --- r? ```@estebank``` ```@rustbot``` label: +A-diagnostics
`Wrapping<T>` has the same layout and ABI as `T`
Remove implementation of `min_align_of` intrinsic Since rust-lang#88839 `min_align_of` is lowered to AlignOf operator.
Update books ## rust-by-example 1 commits in 04f489c889235fe3b6dfe678ae5410d07deda958..9d4132b56c4999cd3ce1aeca5f1b2f2cb0d11c24 2021-08-17 08:01:20 -0300 to 2021-09-14 06:56:00 -0300 - Fix link to "integration testing" page (rust-lang/rust-by-example#1458) ## rustc-dev-guide 17 commits in 95f1acf9a39d6f402f654e917e2c1dfdb779c5fc..9198465b6ca8bed669df0cbb67c0e6d0b140803c 2021-08-31 12:38:30 -0500 to 2021-09-12 11:50:44 -0500 - Clarify difference of a help vs note diagnostic. - remove ctag section - Update suggested.md - Update SUMMARY.md - Move ctag section to "Suggested Workflow" - Delete ctags.md - Clarify paragraph in "Keeping things up to date" - Docs: added section on rustdoc - Docs: made suggested fix - Docs: deleted copy - Docs: added section discussing core ideas - Docs: delete redundant use of correctness - Docs: consolidated parallelism information - Add links to overview.md (rust-lang/rustc-dev-guide#1202) - Spelling change intermidiate to intermediate - Fix a typo (rust-lang/rustc-dev-guide#1200) - Documenting diagnostic items with their usage and naming conventions (rust-lang/rustc-dev-guide#1192) ## embedded-book 1 commits in c3a51e23859554369e6bbb5128dcef0e4f159fb5..4c76da9ddb4650203c129fceffdea95a3466c205 2021-08-26 07:04:58 +0000 to 2021-09-12 12:43:03 +0000 - 2.1(QEMU): update app name for git project init (rust-embedded/book#301)
@bors r+ p=2 |
📌 Commit 1da3c1d has been approved by |
🌲 The tree is currently closed for pull requests below priority 100. This pull request will be tested once the tree is reopened. |
@bors treeclosed- |
☀️ Test successful - checks-actions |
Finished benchmarking commit (34327f6): comparison url. Summary: This benchmark run did not return any relevant changes. If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf. @rustbot label: -perf-regression |
Successful merges:
m!{ .. }.method()
andm!{ .. }?
statements. #88690 (Acceptm!{ .. }.method()
andm!{ .. }?
statements. )(recv.method)()
#88841 (feat(rustc_typeck): suggest removing bad parens in(recv.method)()
)const fn
if error happened because of a bound on the impl block #88907 (Highlight theconst fn
if error happened because of a bound on the impl block)Wrapping<T>
has the same layout and ABI asT
#88915 (Wrapping<T>
has the same layout and ABI asT
)min_align_of
intrinsic #88933 (Remove implementation ofmin_align_of
intrinsic)Failed merges:
r? @ghost
@rustbot modify labels: rollup
Create a similar rollup