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 5 pull requests #108393

Closed
wants to merge 15 commits into from
Closed

Commits on Jan 15, 2023

  1. Configuration menu
    Copy the full SHA
    0d3eaa8 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    fa2ff4d View commit details
    Browse the repository at this point in the history

Commits on Jan 31, 2023

  1. Configuration menu
    Copy the full SHA
    6bf2c4d View commit details
    Browse the repository at this point in the history
  2. add and bless tests

    fee1-dead committed Jan 31, 2023
    Configuration menu
    Copy the full SHA
    3aeb43c View commit details
    Browse the repository at this point in the history

Commits on Feb 21, 2023

  1. Make query keys Copy

    Zoxc committed Feb 21, 2023
    Configuration menu
    Copy the full SHA
    056c5b3 View commit details
    Browse the repository at this point in the history

Commits on Feb 23, 2023

  1. Configuration menu
    Copy the full SHA
    6f92031 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    242daf8 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    634d8cb View commit details
    Browse the repository at this point in the history
  4. Add stderr

    mejrs committed Feb 23, 2023
    Configuration menu
    Copy the full SHA
    4c13a21 View commit details
    Browse the repository at this point in the history
  5. parser: provide better errors on closures with braces missing

    We currently provide wrong suggestions and unhelpful errors on closure
    bodies with braces missing. For example, given the following code:
    
    ```
    fn main() {
        let _x = Box::new(|x|x+1;);
    }
    ```
    
    the current output is like this:
    
    ```
    error: expected expression, found `)`
     --> ./main.rs:2:30
      |
    2 |     let _x = Box::new(|x|x+1;);
      |                              ^ expected expression
    
    error: closure bodies that contain statements must be surrounded by braces
     --> ./main.rs:2:25
      |
    2 |     let _x = Box::new(|x|x+1;);
      |                         ^
    3 | }
      | ^
      |
    
    ...
    
    help: try adding braces
      |
    2 ~     let _x = Box::new(|x| {x+1;);
    3 ~ }}
    
    ...
    
    error: expected `;`, found `}`
     --> ./main.rs:2:32
      |
    2 |     let _x = Box::new(|x|x+1;);
      |                                ^ help: add `;` here
    3 | }
      | - unexpected token
    
    error: aborting due to 3 previous errors
    ```
    
    This commit allows outputting correct suggestions and errors. The above
    code would output like this:
    
    ```
    error: closure bodies that contain statements must be surrounded by braces
     --> ./main.rs:2:25
      |
    2 |     let _x = Box::new(|x|x+1;);
      |                         ^    ^
      |
    note: statement found outside of a block
     --> ./main.rs:2:29
      |
    2 |     let _x = Box::new(|x|x+1;);
      |                          ---^ this `;` turns the preceding closure into a statement
      |                          |
      |                          this expression is a statement because of the trailing semicolon
    note: the closure body may be incorrectly delimited
     --> ./main.rs:2:23
      |
    2 |     let _x = Box::new(|x|x+1;);
      |                       ^^^^^^ - ...but likely you meant the closure to end here
      |                       |
      |                       this is the parsed closure...
    help: try adding braces
      |
    2 |     let _x = Box::new(|x| {x+1;});
      |                           +    +
    
    error: aborting due to previous error
    ```
    ohno418 committed Feb 23, 2023
    Configuration menu
    Copy the full SHA
    0e42298 View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#106541 - fee1-dead-contrib:no-const-check-n…

    …o, r=thomcc
    
    implement const iterator using `rustc_do_not_const_check`
    
    Previous experiment: rust-lang#102225.
    
    Explanation: rather than making all default methods work under `const` all at once, this uses `rustc_do_not_const_check` as a workaround to "trick" the compiler to not run any checks on those other default methods. Any const implementations are only required to implement the `next` method. Any actual calls to the trait methods other than `next` will either error in compile time (at CTFE runs), or run the methods correctly if they do not have any non-const operations. This is extremely easy to maintain, remove, or improve.
    Dylan-DPC authored Feb 23, 2023
    Configuration menu
    Copy the full SHA
    1868e91 View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#106918 - dtolnay:heapretain, r=the8472

    Rebuild BinaryHeap on unwind from retain
    
    This closes the hole identified in rust-lang#71503 (comment) which had made it possible for the caller to end up with a heap in invalid state. As of rust-lang#105851, heaps in invalid state are not supposed to exist.
    Dylan-DPC authored Feb 23, 2023
    Configuration menu
    Copy the full SHA
    4dbde84 View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#106923 - mejrs:fluent_err, r=davidtwco

    Restore behavior when primary bundle is missing
    
    Fixes rust-lang#106755 by restoring some of the behavior prior to rust-lang#106427
    
    Still, I have no idea how this debug assertion can even hit while using `en-US` as primary  bundle.
    
    r? `@davidtwco`
    Dylan-DPC authored Feb 23, 2023
    Configuration menu
    Copy the full SHA
    58baee1 View commit details
    Browse the repository at this point in the history
  9. Rollup merge of rust-lang#108169 - Zoxc:query-key-copy, r=cjgillot

    Make query keys `Copy`
    
    This regressed compiler performance locally, so I'm curious what perf will say about it.
    
    <table><tr><td rowspan="2">Benchmark</td><td colspan="1"><b>Before</b></th><td colspan="2"><b>After</b></th></tr><tr><td align="right">Time</td><td align="right">Time</td><td align="right">%</th></tr><tr><td>🟣 <b>clap</b>:check</td><td align="right">1.7566s</td><td align="right">1.7657s</td><td align="right"> 0.52%</td></tr><tr><td>🟣 <b>hyper</b>:check</td><td align="right">0.2572s</td><td align="right">0.2578s</td><td align="right"> 0.20%</td></tr><tr><td>🟣 <b>regex</b>:check</td><td align="right">0.9863s</td><td align="right">0.9900s</td><td align="right"> 0.37%</td></tr><tr><td>🟣 <b>syn</b>:check</td><td align="right">1.6018s</td><td align="right">1.6073s</td><td align="right"> 0.34%</td></tr><tr><td>🟣 <b>syntex_syntax</b>:check</td><td align="right">6.2493s</td><td align="right">6.2920s</td><td align="right"> 0.68%</td></tr><tr><td>Total</td><td align="right">10.8512s</td><td align="right">10.9127s</td><td align="right"> 0.57%</td></tr><tr><td>Summary</td><td align="right">1.0000s</td><td align="right">1.0042s</td><td align="right"> 0.42%</td></tr></table>
    Dylan-DPC authored Feb 23, 2023
    Configuration menu
    Copy the full SHA
    f8de392 View commit details
    Browse the repository at this point in the history
  10. Rollup merge of rust-lang#108388 - ohno418:better-suggestion-on-malfo…

    …rmed-closure, r=davidtwco
    
    parser: provide better suggestions and errors on closures with braces missing
    
    We currently provide wrong suggestions and unhelpful errors on closure bodies with braces missing.
    
    For example, given the following code:
    
    ```rust
    fn main() {
        let _x = Box::new(|x|x+1;);
    }
    ```
    
    the current output is:
    
    ```
    error: expected expression, found `)`
     --> ./main.rs:2:30
      |
    2 |     let _x = Box::new(|x|x+1;);
      |                              ^ expected expression
    
    error: closure bodies that contain statements must be surrounded by braces
     --> ./main.rs:2:25
      |
    2 |     let _x = Box::new(|x|x+1;);
      |                         ^
    3 | }
      | ^
      |
    note: statement found outside of a block
     --> ./main.rs:2:29
      |
    2 |     let _x = Box::new(|x|x+1;);
      |                          ---^ this `;` turns the preceding closure into a statement
      |                          |
      |                          this expression is a statement because of the trailing semicolon
    note: the closure body may be incorrectly delimited
     --> ./main.rs:2:23
      |
    2 |     let _x = Box::new(|x|x+1;);
      |                       ^^^^^^ this is the parsed closure...
    3 | }
      | - ...but likely you meant the closure to end here
    help: try adding braces
      |
    2 ~     let _x = Box::new(|x| {x+1;);
    3 ~ }}
      |
    
    error: expected `;`, found `}`
     --> ./main.rs:2:32
      |
    2 |     let _x = Box::new(|x|x+1;);
      |                                ^ help: add `;` here
    3 | }
      | - unexpected token
    
    error: aborting due to 3 previous errors
    ```
    
    We got 3 errors, but all but the second are unnecessary or just wrong.
    
    This commit allows outputting correct suggestions and errors. The above code would output like this:
    
    ```
    error: closure bodies that contain statements must be surrounded by braces
     --> ./main.rs:2:25
      |
    2 |     let _x = Box::new(|x|x+1;);
      |                         ^    ^
      |
    note: statement found outside of a block
     --> ./main.rs:2:29
      |
    2 |     let _x = Box::new(|x|x+1;);
      |                          ---^ this `;` turns the preceding closure into a statement
      |                          |
      |                          this expression is a statement because of the trailing semicolon
    note: the closure body may be incorrectly delimited
     --> ./main.rs:2:23
      |
    2 |     let _x = Box::new(|x|x+1;);
      |                       ^^^^^^ - ...but likely you meant the closure to end here
      |                       |
      |                       this is the parsed closure...
    help: try adding braces
      |
    2 |     let _x = Box::new(|x| {x+1;});
      |                           +    +
    
    error: aborting due to previous error
    ```
    
    Fixes rust-lang#107959.
    
    r? diagnostics
    Dylan-DPC authored Feb 23, 2023
    Configuration menu
    Copy the full SHA
    f57ed91 View commit details
    Browse the repository at this point in the history