Skip to content
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

Closed
wants to merge 26 commits into from

Commits on Sep 6, 2021

  1. Configuration menu
    Copy the full SHA
    3caf0bc View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ebf1252 View commit details
    Browse the repository at this point in the history

Commits on Sep 9, 2021

  1. Configuration menu
    Copy the full SHA
    2691a39 View commit details
    Browse the repository at this point in the history
  2. Revert "Add test for pretty printing anonymous types"

    This reverts commit d59b1f1.
    pnkfelix committed Sep 9, 2021
    Configuration menu
    Copy the full SHA
    2041fb1 View commit details
    Browse the repository at this point in the history
  3. Revert "Fix ast expanded printing for anonymous types"

    This reverts commit 5b4bc05.
    pnkfelix committed Sep 9, 2021
    Configuration menu
    Copy the full SHA
    5560f6d View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    f38ec9c View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    b6aa7e3 View commit details
    Browse the repository at this point in the history
  6. Revert "Implement Anonymous{Struct, Union} in the AST"

    This reverts commit 059b68d.
    
    Note that this was manually adjusted to retain some of the refactoring
    introduced by commit 059b68d, so that it could
    likewise retain the correction introduced in commit
    5b4bc05
    pnkfelix committed Sep 9, 2021
    Configuration menu
    Copy the full SHA
    91feb76 View commit details
    Browse the repository at this point in the history
  7. Re-add 71a7f8f post-revert.

    pnkfelix committed Sep 9, 2021
    Configuration menu
    Copy the full SHA
    f26f1ed View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    35370a7 View commit details
    Browse the repository at this point in the history

Commits on Sep 11, 2021

  1. Configuration menu
    Copy the full SHA
    5dab3c5 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e5c2412 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d98892b View commit details
    Browse the repository at this point in the history

Commits on Sep 13, 2021

  1. Configuration menu
    Copy the full SHA
    8be729c View commit details
    Browse the repository at this point in the history
  2. Highlight the const function if error happened because of a bound on …

    …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
    ```
    WaffleLapkin committed Sep 13, 2021
    Configuration menu
    Copy the full SHA
    6ec7255 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    7d8d7a0 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    1053a5b View commit details
    Browse the repository at this point in the history

Commits on Sep 14, 2021

  1. Remove implementation of min_align_of intrinsic

    Since 88839 `min_align_of` is lowered to AlignOf operator.
    tmiasko committed Sep 14, 2021
    Configuration menu
    Copy the full SHA
    f9b8191 View commit details
    Browse the repository at this point in the history

Commits on Sep 15, 2021

  1. Update books

    ehuss committed Sep 15, 2021
    Configuration menu
    Copy the full SHA
    a3115b3 View commit details
    Browse the repository at this point in the history
  2. Rollup merge of rust-lang#88690 - m-ou-se:macro-braces-dot-question-e…

    …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 `?`.
    Manishearth authored Sep 15, 2021
    Configuration menu
    Copy the full SHA
    4682a8c View commit details
    Browse the repository at this point in the history
  3. Rollup merge of rust-lang#88775 - pnkfelix:revert-anon-union-parsing,…

    … 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.
    Manishearth authored Sep 15, 2021
    Configuration menu
    Copy the full SHA
    95306c6 View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#88841 - notriddle:notriddle/method-parens, …

    …r=estebank
    
    feat(rustc_typeck): suggest removing bad parens in `(recv.method)()`
    
    Fixes rust-lang#88803
    Manishearth authored Sep 15, 2021
    Configuration menu
    Copy the full SHA
    293eb80 View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#88907 - WaffleLapkin:targeted_const_fn_with…

    …_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
    Manishearth authored Sep 15, 2021
    Configuration menu
    Copy the full SHA
    fdac4c0 View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#88915 - joshlf:patch-4, r=kennytm

    `Wrapping<T>` has the same layout and ABI as `T`
    Manishearth authored Sep 15, 2021
    Configuration menu
    Copy the full SHA
    0ced81e View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#88933 - tmiasko:remove-min-align-of, r=oli-obk

    Remove implementation of `min_align_of` intrinsic
    
    Since rust-lang#88839 `min_align_of` is lowered to AlignOf operator.
    Manishearth authored Sep 15, 2021
    Configuration menu
    Copy the full SHA
    58cda93 View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#88951 - ehuss:update-books, r=ehuss

    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)
    Manishearth authored Sep 15, 2021
    Configuration menu
    Copy the full SHA
    d9a7279 View commit details
    Browse the repository at this point in the history