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 #91656

Merged
merged 17 commits into from
Dec 8, 2021
Merged

Rollup of 7 pull requests #91656

merged 17 commits into from
Dec 8, 2021

Commits on Nov 3, 2021

  1. Configuration menu
    Copy the full SHA
    951dad6 View commit details
    Browse the repository at this point in the history

Commits on Nov 26, 2021

  1. Configuration menu
    Copy the full SHA
    b38a540 View commit details
    Browse the repository at this point in the history

Commits on Dec 2, 2021

  1. Configuration menu
    Copy the full SHA
    49aa5ba View commit details
    Browse the repository at this point in the history

Commits on Dec 4, 2021

  1. Do not add ; to expected tokens list when it's wrong

    There's a few spots where semicolons are checked for to do error recovery,
    and should not be suggested (or checked for other stuff).
    
    Fixes rust-lang#87647
    notriddle committed Dec 4, 2021
    Configuration menu
    Copy the full SHA
    74437e4 View commit details
    Browse the repository at this point in the history

Commits on Dec 5, 2021

  1. Configuration menu
    Copy the full SHA
    6afbfca View commit details
    Browse the repository at this point in the history

Commits on Dec 6, 2021

  1. Make treatment of generator drop shims explicit

    Notably, the passes at the end of `make_shim` aren't applied to them.
    ecstatic-morse committed Dec 6, 2021
    Configuration menu
    Copy the full SHA
    f04b8f2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6199592 View commit details
    Browse the repository at this point in the history
  3. Expect extern fn with no body when parsing

    Also add a test case for inserting a semicolon on extern fns.
    
    Without this fix, we got an error like this:
    
        error: expected one of `->`, `where`, or `{`, found `}`
         --> chk.rs:3:1
          |
        2 |   fn foo()
          |      ---  - expected one of `->`, `where`, or `{`
          |      |
          |      while parsing this `fn`
        3 | }
          | ^ unexpected token
    
    Since this is inside an extern block, you're required to write function
    prototypes with no body. This fixes a regression, and adds a test case
    for it.
    notriddle committed Dec 6, 2021
    Configuration menu
    Copy the full SHA
    6611567 View commit details
    Browse the repository at this point in the history

Commits on Dec 7, 2021

  1. Configuration menu
    Copy the full SHA
    9b6c510 View commit details
    Browse the repository at this point in the history

Commits on Dec 8, 2021

  1. Remove in_band_lifetimes from rustc_mir_transform

    This one is a heavy `'tcx` user.
    
    Two interesting ones:
    
    This one had the `'tcx` declared on the function, despite the trait taking a `'tcx`:
    ```diff
    -impl Visitor<'_> for UsedLocals {
    +impl<'tcx> Visitor<'tcx> for UsedLocals {
         fn visit_statement(&mut self, statement: &Statement<'tcx>, location: Location) {
    ```
    
    This one use in-band for one, and underscore for the other:
    ```diff
    -pub fn remove_dead_blocks(tcx: TyCtxt<'tcx>, body: &mut Body<'_>) {
    +pub fn remove_dead_blocks<'tcx>(tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) {
    ```
    scottmcm committed Dec 8, 2021
    Configuration menu
    Copy the full SHA
    a124924 View commit details
    Browse the repository at this point in the history
  2. Rollup merge of rust-lang#83744 - bjorn3:deprecate_cfg_attr_crate_typ…

    …e_name, r=Mark-Simulacrum
    
    Deprecate crate_type and crate_name nested inside #![cfg_attr]
    
    This implements the proposal in rust-lang#83676 (comment), with a future compatibility lint imposed on usage of crate_type/crate_name inside cfg's.
    
    This is a compromise between removing `#![crate_type]` and `#![crate_name]` completely and keeping them as a whole, which requires somewhat of a hack in rustc and is impossible to support by gcc-rust. By only removing `#![crate_type]` and `#![crate_name]` nested inside `#![cfg_attr]` it becomes possible to parse them before a big chunk of the compiler has started.
    
    Replaces rust-lang#83676
    
    ```rust
    #![crate_type = "lib"] // remains working
    #![cfg_attr(foo, crate_type = "bin")] // will stop working
    ```
    
    # Rationale
    
    As it currently is it is possible to try to access the stable crate id before it is actually set, which will panic. The fact that the Session contains mutable state beyond debugging things also doesn't completely sit well with me. Especially once parallel rustc becomes the default.
    
    I think there is currently also a cyclic dependency where you need to set the stable crate id to be able to load crates, but you need to load crates to expand proc macro attributes that may define #![crate_name] or #![crate_type]. Currently crate level proc macro attributes are unstable or completely unsupported (can't remember which), so this is not a problem, but it may become an issue in the future.
    
    Finally if we want to add incremental compilation to macro expansion or even parsing, we need the StableCrateId to be created together with the Session or even earlier as incremental compilation determines the incremental compilation session dir based on the StableCrateId.
    matthiaskrgr authored Dec 8, 2021
    Configuration menu
    Copy the full SHA
    da158c0 View commit details
    Browse the repository at this point in the history
  3. Rollup merge of rust-lang#90550 - ehuss:update-ca, r=Mark-Simulacrum

    Update certificates in some Ubuntu 16 images.
    
    These images use crosstool-ng, which needs to download various things off the internet. The certificate for `www.kernel.org` no longer works with the ca-certificates in Ubuntu 16. This resolves the issue by grabbing from a newer image a certificate bundle from https://curl.se/ca/cacert.pem, which is usually somewhat up to date.
    matthiaskrgr authored Dec 8, 2021
    Configuration menu
    Copy the full SHA
    c104236 View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#91272 - FabianWolff:issue-90870-const-fn-eq…

    …, r=wesleywiser
    
    Print a suggestion when comparing references to primitive types in `const fn`
    
    Fixes rust-lang#90870.
    matthiaskrgr authored Dec 8, 2021
    Configuration menu
    Copy the full SHA
    871cf2b View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#91467 - ChrisDenton:confusing-os-string, r=…

    …Mark-Simulacrum
    
    Emphasise that an OsStr[ing] is not necessarily a platform string
    
    Fixes rust-lang#53261
    
    Since that issue was filed, rust-lang#56141 added a further clarification to the `OsString` docs. However the ffi docs may still leave the impression that an `OsStr` is in the platform native form. This PR aims to further emphasise that an `OsStr` is not necessarily a platform string.
    matthiaskrgr authored Dec 8, 2021
    Configuration menu
    Copy the full SHA
    bb8a4ab View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#91531 - notriddle:notriddle/issue-87647-exp…

    …ected-semicolon, r=estebank
    
    Do not add `;` to expected tokens list when it's wrong
    
    There's a few spots where semicolons are checked for to do error recovery, and should not be suggested (or checked for other stuff).
    
    Fixes rust-lang#87647
    matthiaskrgr authored Dec 8, 2021
    Configuration menu
    Copy the full SHA
    87f2c51 View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#91577 - ecstatic-morse:mir-pass-manager-cle…

    …anup, r=oli-obk
    
    Address some FIXMEs left over from rust-lang#91475
    
    This shouldn't change behavior, only clarify what we're currently doing. I filed rust-lang#91576 to see if the treatment of generator drop shims is intentional.
    
    cc rust-lang#91475
    matthiaskrgr authored Dec 8, 2021
    Configuration menu
    Copy the full SHA
    4a76541 View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#91638 - scottmcm:less-inband-2-of-28, r=pet…

    …rochenkov
    
    Remove `in_band_lifetimes` from `rustc_mir_transform`
    
    Like rust-lang#91580, this was inspired by the conversation in rust-lang#44524 about possibly removing the feature from the compiler.  This crate is a heavy `'tcx` user, so is a nice case study.
    
    r? ``@petrochenkov``
    
    Three interesting ones:
    
    This one had the `'tcx` declared on the function, despite the trait taking a `'tcx`:
    ```diff
    -impl Visitor<'_> for UsedLocals {
    +impl<'tcx> Visitor<'tcx> for UsedLocals {
         fn visit_statement(&mut self, statement: &Statement<'tcx>, location: Location) {
    ```
    
    This one use in-band for one, and underscore for the other:
    ```diff
    -pub fn remove_dead_blocks(tcx: TyCtxt<'tcx>, body: &mut Body<'_>) {
    +pub fn remove_dead_blocks<'tcx>(tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) {
    ```
    
    A spurious name, since there's no single-use-lifetime warning:
    ```diff
    -pub fn run_passes(tcx: TyCtxt<'tcx>, body: &'mir mut Body<'tcx>, passes: &[&dyn MirPass<'tcx>]) {
    +pub fn run_passes<'tcx>(tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>, passes: &[&dyn MirPass<'tcx>]) {
    ```
    matthiaskrgr authored Dec 8, 2021
    Configuration menu
    Copy the full SHA
    90690da View commit details
    Browse the repository at this point in the history