-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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 7 pull requests #88958
Rollup of 7 pull requests #88958
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.
…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 d9a7279 has been approved by |
⌛ Testing commit d9a7279 with merge e5a30067e67704a2c939551ef707f9921e0e104d... |
The job Click to see the possible cause of the failure (guessed by this bot)
|
💔 Test failed - checks-actions |
@bors retry |
⌛ Testing commit d9a7279 with merge 335cdb7d25e4e5362cacadd764a1f44493a64018... |
The job Click to see the possible cause of the failure (guessed by this bot)
|
💔 Test failed - checks-actions |
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