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 18 pull requests #74401

Closed
wants to merge 75 commits into from

Commits on Jun 12, 2020

  1. Enable some timeouts in SGX platform

    This would partially resolve
    fortanix/rust-sgx#31
    mzohreva committed Jun 12, 2020
    Configuration menu
    Copy the full SHA
    c4b0265 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d7dc64b View commit details
    Browse the repository at this point in the history
  3. Allow more ui tests for SGX

    mzohreva committed Jun 12, 2020
    Configuration menu
    Copy the full SHA
    c5d1fcd View commit details
    Browse the repository at this point in the history

Commits on Jun 18, 2020

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

Commits on Jun 26, 2020

  1. Don't pollute docs/suggestions with libstd deps

    Currently dependency crates of the standard library can sometimes leak
    into error messages such as when traits to import are suggested.
    Additionally they can leak into documentation such as in the list of
    "all traits implemented by `u32`". The dependencies of the standard
    library, however, are intended to be private.
    
    The dependencies of the standard library can't actually be stabl-y
    imported nor is the documentation that relevant since you can't import
    them on stable either. This commit updates both the compiler and rustdoc
    to ignore unstable traits in these two scenarios.
    
    Specifically the suggestion for traits to import ignore unstable traits,
    and similarly the list of traits implemented by a type excludes unstable
    traits.
    
    This commit is extracted from rust-lang#73441 where the addition of some new
    dependencies to the standard library was showed to leak into various
    error messages and documentation. The intention here is to go ahead and
    land these changes ahead of that since it will likely take some time to
    land.
    alexcrichton committed Jun 26, 2020
    Configuration menu
    Copy the full SHA
    fde8d11 View commit details
    Browse the repository at this point in the history

Commits on Jun 27, 2020

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

Commits on Jul 1, 2020

  1. Ignoring test case: [codegen] repr-transparent-aggregates-1.rs for aa…

    …rch64
    
    Copyright (c) 2020, Arm Limited.
    joacar01 committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    582071c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c457b67 View commit details
    Browse the repository at this point in the history

Commits on Jul 2, 2020

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

Commits on Jul 3, 2020

  1. Configuration menu
    Copy the full SHA
    9b6b400 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    95bf7b7 View commit details
    Browse the repository at this point in the history

Commits on Jul 9, 2020

  1. Configuration menu
    Copy the full SHA
    24abe16 View commit details
    Browse the repository at this point in the history
  2. Make hir ProjectionKind more precise

    This commit also categorizing access as Field, Index, or Subslice.
    
    Ideas are taken from `mir::ProjectionElem`.
    
    Proposed changes: https://github.com/rust-lang/project-rfc-2229/blob/master/hir-place-target.md
    
    Closes: rust-lang/project-rfc-2229#1,
    rust-lang/project-rfc-2229#2
    
    Co-authored-by: Aman Arora <[email protected]>
    Co-authored-by: Chris Pardy <[email protected]>
    Co-authored-by: Dhruv Jauhar <[email protected]>
    3 people committed Jul 9, 2020
    Configuration menu
    Copy the full SHA
    1acccb0 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    9f91a95 View commit details
    Browse the repository at this point in the history

Commits on Jul 11, 2020

  1. Address review comments

    mzohreva committed Jul 11, 2020
    Configuration menu
    Copy the full SHA
    1466598 View commit details
    Browse the repository at this point in the history

Commits on Jul 14, 2020

  1. rustdoc: glue tokens before highlighting

    Fixes rust-lang#72684.
    
    This commit also modifies the signature of `Classifier::new` to avoid
    copying the source being highlighted.
    euclio committed Jul 14, 2020
    Configuration menu
    Copy the full SHA
    c3ee75d View commit details
    Browse the repository at this point in the history

Commits on Jul 15, 2020

  1. Don't render unstable for rustc docs

    As rustc is permanently unstable. So marking every items
    with unstable is essential useless.
    tesuji committed Jul 15, 2020
    Configuration menu
    Copy the full SHA
    f970632 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    47fea96 View commit details
    Browse the repository at this point in the history
  3. rustdoc: Rename internal API fns to into_string

    to avoid surprising listed in API guidelines.
    tesuji committed Jul 15, 2020
    Configuration menu
    Copy the full SHA
    0f4e4a0 View commit details
    Browse the repository at this point in the history
  4. Don't run everybody_loops for rustdoc

    Instead, ignore resolution errors that occur in item bodies.
    
    The reason this can't ignore item bodies altogether is because
    `const fn` could be used in generic types, for example `[T; f()]`
    jyn514 committed Jul 15, 2020
    Configuration menu
    Copy the full SHA
    a5275ff View commit details
    Browse the repository at this point in the history
  5. Don't run analysis pass in rustdoc

    - Explicitly check for missing docs
    - Don't run any lints except those we explicitly specified
    jyn514 committed Jul 15, 2020
    Configuration menu
    Copy the full SHA
    b3187aa View commit details
    Browse the repository at this point in the history
  6. Add an option not to report resolution errors for rustdoc

    - Remove unnecessary `should_loop` variable
    - Report errors for trait implementations
    
    These should give resolution errors because they are visible outside the
    current scope. Without these errors, rustdoc will give ICEs:
    
    ```
    thread 'rustc' panicked at 'attempted .def_id() on invalid res: Err', /home/joshua/src/rust/src/libstd/macros.rs:16:9
      15: rustc_hir::def::Res<Id>::def_id
                 at /home/joshua/src/rust/src/librustc_hir/def.rs:382
      16: rustdoc::clean::utils::register_res
                 at src/librustdoc/clean/utils.rs:627
      17: rustdoc::clean::utils::resolve_type
                 at src/librustdoc/clean/utils.rs:587
    ```
    
    - Add much more extensive tests
      + fn -> impl -> fn
      + fn -> impl -> fn -> macro
      + errors in function parameters
      + errors in trait bounds
      + errors in the type implementing the trait
      + unknown bounds for the type
      + unknown types in function bodies
      + errors generated by macros
    
    - Use explicit state instead of trying to reconstruct it from random info
    - Use an enum instead of a boolean
    - Add example of ignored error
    jyn514 committed Jul 15, 2020
    Configuration menu
    Copy the full SHA
    1b8accb View commit details
    Browse the repository at this point in the history
  7. Add rustdoc tests from rust-lang#72088

    ecstatic-morse authored and jyn514 committed Jul 15, 2020
    Configuration menu
    Copy the full SHA
    14a8707 View commit details
    Browse the repository at this point in the history
  8. Don't ICE on errors in function returning impl trait

    Instead, report the error.
    
    This emits the errors on-demand, without special-casing `impl Trait`, so
    it should catch all ICEs of this kind, including ones that haven't been
    found yet.
    
    Since the error is emitted during type-checking there is less info about
    the error; see comments in the code for details.
    
    - Add test case for -> impl Trait
    - Add test for impl trait with alias
    - Move EmitIgnoredResolutionErrors to rustdoc
    
    This makes `fn typeck_item_bodies` public, which is not desired behavior.
    That change should be removed once
    rust-lang#74070 is merged.
    
    - Don't visit nested closures twice
    jyn514 committed Jul 15, 2020
    Configuration menu
    Copy the full SHA
    768d6a4 View commit details
    Browse the repository at this point in the history
  9. Recurse into function bodies, but don't typeck closures

    Previously, rustdoc would issue a delay_span_bug ICE on the following code:
    
    ```rust
    pub fn a() -> impl Fn() -> u32 {
        || content::doesnt::matter()
    }
    ```
    
    This wasn't picked up earlier because having `type Alias = impl Trait;`
    in the same module caused _all closures_ to be typechecked, even if they
    wouldn't normally. Additionally, if _any_ error was emitted, no
    delay_span_bug would be emitted. So as part of this commit all of the
    tests were separated out into different files.
    jyn514 committed Jul 15, 2020
    Configuration menu
    Copy the full SHA
    a93bcc9 View commit details
    Browse the repository at this point in the history
  10. Add test case for rust-lang#65863

    jyn514 committed Jul 15, 2020
    Configuration menu
    Copy the full SHA
    d010443 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    cf844d2 View commit details
    Browse the repository at this point in the history
  12. Avoid unnecessary enum

    Just use a boolean instead.
    jyn514 committed Jul 15, 2020
    Configuration menu
    Copy the full SHA
    0cbc1cd View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    3576f5d View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    bbe4971 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    2f29e69 View commit details
    Browse the repository at this point in the history
  16. Use tcx as the only context for visitor

    Previously two different parts of the context had to be passed
    separately; there were two sources of truth.
    jyn514 committed Jul 15, 2020
    Configuration menu
    Copy the full SHA
    763d373 View commit details
    Browse the repository at this point in the history
  17. Remove unnecessary lifetime parameter

    TyCtxt is a reference type and so can be passed by value.
    jyn514 committed Jul 15, 2020
    Configuration menu
    Copy the full SHA
    0759a55 View commit details
    Browse the repository at this point in the history
  18. --bless

    jyn514 committed Jul 15, 2020
    Configuration menu
    Copy the full SHA
    2d0e8e2 View commit details
    Browse the repository at this point in the history
  19. Don't ICE on infinitely recursive types

    `evaluate_obligation` can only be run on types that are already valid.
    So rustdoc still has to run typeck even though it doesn't care about the
    result.
    jyn514 committed Jul 15, 2020
    Configuration menu
    Copy the full SHA
    02a24c8 View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    4c88070 View commit details
    Browse the repository at this point in the history
  21. Fix comment

    jyn514 committed Jul 15, 2020
    Configuration menu
    Copy the full SHA
    b2ff0e7 View commit details
    Browse the repository at this point in the history
  22. EMPTY_MAP -> EMPTY_SET

    jyn514 committed Jul 15, 2020
    Configuration menu
    Copy the full SHA
    ac9157b View commit details
    Browse the repository at this point in the history
  23. Address review comments

    - Move static variables into the innermost scope in which they are used
    - Clean up comments
    - Remove external_providers; rename local_providers -> providers
    jyn514 committed Jul 15, 2020
    Configuration menu
    Copy the full SHA
    6eec9fb View commit details
    Browse the repository at this point in the history
  24. Catch errors for any new item, not just trait implementations

    This matches the previous behavior of everybody_loops and is also more
    consistent than special-casing impls.
    jyn514 committed Jul 15, 2020
    Configuration menu
    Copy the full SHA
    e117b47 View commit details
    Browse the repository at this point in the history
  25. Use the default providers in rustc_interface instead of adding our own

    This avoids duplicating the same struct twice.
    jyn514 committed Jul 15, 2020
    Configuration menu
    Copy the full SHA
    281ca13 View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    703f680 View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    85c25ae View commit details
    Browse the repository at this point in the history

Commits on Jul 16, 2020

  1. Configuration menu
    Copy the full SHA
    1813ae7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    338a271 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    14a1031 View commit details
    Browse the repository at this point in the history
  4. relax Node lt bounds

    lcnr committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    3f55840 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    6f5d8bf View commit details
    Browse the repository at this point in the history
  6. update help message

    lcnr committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    0c511ab View commit details
    Browse the repository at this point in the history
  7. bless ui tests

    lcnr committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    01f5dd3 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    f52039d View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    09ba0bd View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    ca253ca View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    b82d332 View commit details
    Browse the repository at this point in the history
  12. Remove unused lazy_static

    jyn514 committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    631b2b9 View commit details
    Browse the repository at this point in the history
  13. Bump to 1.47

    Mark-Simulacrum committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    9bc922e View commit details
    Browse the repository at this point in the history
  14. apply bootstrap cfgs

    Mark-Simulacrum committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    aba1242 View commit details
    Browse the repository at this point in the history
  15. Rollup merge of rust-lang#73269 - mzohreva:mz/sgx-wait-timeout, r=jet…

    …hrogb
    
    Enable some timeouts in SGX platform
    
    This would partially resolve fortanix/rust-sgx#31
    
    cc @jethrogb and @Goirad
    Manishearth authored Jul 16, 2020
    Configuration menu
    Copy the full SHA
    f4d71a8 View commit details
    Browse the repository at this point in the history
  16. Rollup merge of rust-lang#73566 - jyn514:name-resolve-first, r=eddyb

    Don't run `everybody_loops` for rustdoc; instead ignore resolution errors
    
    r? @eddyb
    cc @petrochenkov, @GuillaumeGomez, @Manishearth, @ecstatic-morse, @marmeladema
    
    ~~Blocked on rust-lang#73743 Merged.
    ~~Blocked on crater run.~~ Crater popped up some ICEs ([now fixed](rust-lang#73566 (comment))). See [crater run](https://crater-reports.s3.amazonaws.com/pr-73566/index.html), [ICEs](rust-lang#73566 (comment)).
    ~~Blocked on rust-lang#74070 so that we don't make typeck_tables_of public when it shouldn't be.~~ Merged.
    
    Closes rust-lang#71820, closes rust-lang#71104, closes rust-lang#65863.
    
    ## What is the motivation for this change?
    
    As seen from a lengthy trail of PRs and issues (rust-lang#73532, rust-lang#73103, rust-lang#71820, rust-lang#71104), `everybody_loops` is causing bugs in rustdoc. The main issue is that it does not preserve the validity of the `DefId` tree, meaning that operations on DefIds may unexpectedly fail when called later. This is blocking intra-doc links (see rust-lang#73101).
    
    This PR starts by removing `everybody_loops`, fixing rust-lang#71104 and rust-lang#71820. However, that brings back the bugs seen originally in rust-lang#43348: Since libstd documents items for all platforms, the function bodies sometimes do not type check. Here are the errors from documenting `libstd` with `everybody_loops` disabled and no other changes:
    
    ```rust
    error[E0433]: failed to resolve: could not find `handle` in `sys`
      --> src/libstd/sys/windows/ext/process.rs:13:27
       |
    13 |         let handle = sys::handle::Handle::new(handle as *mut _);
       |                           ^^^^^^ could not find `handle` in `sys`
    
    error[E0425]: cannot find function `symlink_inner` in module `sys::fs`
       --> src/libstd/sys/windows/ext/fs.rs:544:14
        |
    544 |     sys::fs::symlink_inner(src.as_ref(), dst.as_ref(), false)
        |              ^^^^^^^^^^^^^ not found in `sys::fs`
    
    error[E0425]: cannot find function `symlink_inner` in module `sys::fs`
       --> src/libstd/sys/windows/ext/fs.rs:564:14
        |
    564 |     sys::fs::symlink_inner(src.as_ref(), dst.as_ref(), true)
        |              ^^^^^^^^^^^^^ not found in `sys::fs`
    ```
    
    ## Why does this need changes to `rustc_resolve`?
    
    Normally, this could be avoided by simply not calling the `typeck_item_bodies` pass. However, the errors above happen before type checking, in name resolution itself. Since name resolution is intermingled with macro expansion, and rustdoc needs expansion to happen before it knows all items to be documented, there needs to be someway to ignore _resolution_ errors in function bodies.
    
    An alternative solution suggested by @petrochenkov was to not run `everybody_loops` on anything containing a nested `DefId`. This would solve some of the immediate issues, but isn't bullet-proof: the following functions still could not be documented if the items in the body failed to resolve:
    
    - Functions containing a nested `DefId` (rust-lang#71104)
    - ~~Functions returning `impl Trait` (rust-lang#43878 These ended up not resolving anyway with this PR.
    - ~~`const fn`, because `loop {}` in `const fn` is unstable (rust-lang#43636 `const_loop` was just stabilized.
    
    This also isn't exactly what rustdoc wants, which is to avoid looking at function bodies in the first place.
    
    ## What changes were made?
    
    The hack implemented in this PR is to add an option to ignore all resolution errors in function bodies. This is enabled only for rustdoc. Since resolution errors are ignored, the MIR generated will be invalid, as can be seen in the following ICE:
    
    ```rust
    error: internal compiler error: broken MIR in DefId(0:11 ~ doc_cfg[8787]::uses_target_feature[0]) ("return type"): bad type [type error]
      --> /home/joshua/src/rust/src/test/rustdoc/doc-cfg.rs:51:1
       |
    51 | / pub unsafe fn uses_target_feature() {
    52 | |     content::should::be::irrelevant();
    53 | | }
       | |_^
    ```
    
    Fortunately, rustdoc does not need to access MIR in order to generate documentation. Therefore this also removes the call to `analyze()` in `rustdoc::run_core`. This has the side effect of not generating all lints by default. Most lints are safe to ignore (does rustdoc really need to run liveness analysis?) but `missing_docs` in particular is disabled when it should not be. Re-running `missing_docs` specifically does not help, because it causes the typechecking pass to be run, bringing back the errors from rust-lang#24658:
    
    ```
    error[E0599]: no method named `into_handle` found for struct `sys::unix::pipe::AnonPipe` in the current scope
      --> src/libstd/sys/windows/ext/process.rs:71:27
       |
    71 |         self.into_inner().into_handle().into_raw() as *mut _
       |                           ^^^^^^^^^^^ method not found in `sys::unix::pipe::AnonPipe`
       |
    ```
    
    Because of rust-lang#73743, we only run typeck on demand. So this only causes an issue for functions returning `impl Trait`, which were already special cased by `ReplaceFunctionWithBody`. However, it now considers `async fn f() -> T` to be considered `impl Future<Output = T>`, where before it was considered to have a concrete `T` type.
    
    ## How will this affect future changes to rustdoc?
    
    - Any new changes to rustdoc will not be able to perform type checking without bringing back resolution errors in function bodies.
        + As a corollary, any new lints cannot require or perform type checking. In some cases this may require refactoring other parts of the compiler to perform type-checking only on-demand, see for example rust-lang#73743.
        + As a corollary, rustdoc can never again call `tcx.analysis()` unless this PR is reverted altogether.
    
    ## Current status
    
    - ~~I am not yet sure how to bring back `missing_docs` without running typeck. @eddyb suggested allowing lints to opt-out of type-checking, which would probably be another rabbit hole.~~ The opt-out was implemented in rust-lang#73743. However, of the rustc lints, now _only_ missing_docs is run and no other lints: rust-lang#73566 (comment). We need a team decision on whether that's an acceptable tradeoff. Note that all rustdoc lints are still run (`intra_doc_link_resolution_failure`, etc). **UPDATE**: This was deemed acceptable in rust-lang#73566 (comment)
    - ~~The implementation of optional errors in `rustc_resolve` is very brute force, it should probably be moved from `LateResolver` to `Resolver` to avoid duplicating the logic in many places.~~ I'm mostly happy with it now.
    
    - This no longer allows errors in `async fn f() -> T`. This caused breakage in 50 crates out of a full crater run, all of which (that I looked at) didn't compile when run with rustc directly. In other words, it used to be that they could not be compiled but could still be documented; now they can't be documented either. This needs a decision from the rustdoc team on whether this is acceptable breakage. **UPDATE**: This was deemed acceptable in rust-lang#73566 (comment)
    - ~~This makes `fn typeck_tables_of` in `rustc_typeck` public. This is not desired behavior, but needs the changes from rust-lang#74070 in order to be fixed.~~ Reverted.
    Manishearth authored Jul 16, 2020
    Configuration menu
    Copy the full SHA
    7f12387 View commit details
    Browse the repository at this point in the history
  17. Rollup merge of rust-lang#73771 - alexcrichton:ignore-unstable, r=est…

    …ebank,GuillaumeGomez
    
    Don't pollute docs/suggestions with libstd deps
    
    Currently dependency crates of the standard library can sometimes leak
    into error messages such as when traits to import are suggested.
    Additionally they can leak into documentation such as in the list of
    "all traits implemented by `u32`". The dependencies of the standard
    library, however, are intended to be private.
    
    The dependencies of the standard library can't actually be stabl-y
    imported nor is the documentation that relevant since you can't import
    them on stable either. This commit updates both the compiler and rustdoc
    to ignore unstable traits in these two scenarios.
    
    Specifically the suggestion for traits to import ignore unstable traits,
    and similarly the list of traits implemented by a type excludes unstable
    traits.
    
    This commit is extracted from rust-lang#73441 where the addition of some new
    dependencies to the standard library was showed to leak into various
    error messages and documentation. The intention here is to go ahead and
    land these changes ahead of that since it will likely take some time to
    land.
    Manishearth authored Jul 16, 2020
    Configuration menu
    Copy the full SHA
    d9ee217 View commit details
    Browse the repository at this point in the history
  18. Rollup merge of rust-lang#73794 - GuillaumeGomez:cleanup-e0705, r=Dyl…

    …an-DPC
    
    Small cleanup for E0705 explanation
    
    r? @Dylan-DPC
    Manishearth authored Jul 16, 2020
    Configuration menu
    Copy the full SHA
    433669b View commit details
    Browse the repository at this point in the history
  19. Rollup merge of rust-lang#73807 - euclio:rustdoc-highlighting, r=olli…

    …e27,GuillaumeGomez
    
    rustdoc: glue tokens before highlighting
    
    Fixes rust-lang#72684.
    
    This commit also modifies the signature of `Classifier::new` to avoid
    copying the source being highlighted.
    Manishearth authored Jul 16, 2020
    Configuration menu
    Copy the full SHA
    2174099 View commit details
    Browse the repository at this point in the history
  20. Rollup merge of rust-lang#73835 - GuillaumeGomez:cleanup-e0710, r=Dyl…

    …an-DPC
    
    Clean up E0710 explanation
    
    r? @Dylan-DPC
    Manishearth authored Jul 16, 2020
    Configuration menu
    Copy the full SHA
    537c5e0 View commit details
    Browse the repository at this point in the history
  21. Rollup merge of rust-lang#73926 - joaopaulocarreiro:github_rust-6, r=…

    …nikomatsakis
    
    Ignoring test case: [codegen] repr-transparent-aggregates-1.rs for aarch64
    
    Ignoring test case: [codegen] repr-transparent-aggregates-1.rs for aarch64.
    
    Copyright (c) 2020, Arm Limited.
    Manishearth authored Jul 16, 2020
    Configuration menu
    Copy the full SHA
    9cdc999 View commit details
    Browse the repository at this point in the history
  22. Rollup merge of rust-lang#73981 - ehuss:remove-ignore-stage1, r=nikom…

    …atsakis
    
    Remove some `ignore-stage1` annotations.
    
    These tests appear to no longer need the `ignore-stage1` marker.
    
    - `run-make-fulldeps/issue-37839` and `run-make-fulldeps/issue-37893`: I believe these were due to the use of proc-macros, and probably were just missed in rust-lang#49219 which fixed the proc-macro compatibility.
    
    - `compile-fail/asm-src-loc-codegen-units.rs`: This was due to an old issue with landing pads (as mentioned in the linked issue rust-lang#20184). `-Zno-landing-pads` was an option when building the first stage (it was much faster), but somewhere along the way (I think the switch from makefiles to rustbuild), the option was removed.
      - NOTE: This test doesn't actually test what it was originally written for, and is probably mostly pointless now. This test was asserting the message "build without -C codegen-units for more exact errors", but that was removed in rust-lang#42682. It is now in essence identical to `asm-src-loc.rs`.
    Manishearth authored Jul 16, 2020
    Configuration menu
    Copy the full SHA
    7674ed9 View commit details
    Browse the repository at this point in the history
  23. Rollup merge of rust-lang#73998 - euclio:search-index-determinism, r=…

    …nikomatsakis
    
    add regression test for rust-lang#61216
    
    Fixes rust-lang#61216.
    Manishearth authored Jul 16, 2020
    Configuration menu
    Copy the full SHA
    963966b View commit details
    Browse the repository at this point in the history
  24. Rollup merge of rust-lang#74140 - sexxi-goose:precise_hir_projections…

    …, r=nikomatsakis
    
    Make hir ProjectionKind more precise
    
    This commit also categorizing access as Field, Index, or Subslice.
    
    Ideas are taken from `mir::ProjectionElem`.
    
    Proposed changes: https://github.com/rust-lang/project-rfc-2229/blob/master/hir-place-target.md
    
    Closes: rust-lang/project-rfc-2229#1,
    Closes: rust-lang/project-rfc-2229#2
    
    r? @nikomatsakis @matthewjasper
    Manishearth authored Jul 16, 2020
    Configuration menu
    Copy the full SHA
    2f074e0 View commit details
    Browse the repository at this point in the history
  25. Rollup merge of rust-lang#74159 - lcnr:const-generic-ty-decl, r=varkor

    forbid generic params in the type of const params
    
    implements and closes rust-lang#74152
    
    fixes rust-lang#74101, closes rust-lang#71169, fixes rust-lang#73491, closes rust-lang#62878
    
    @eddyb and I talked [on zulip](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/type.20of.20const.20parameters/near/203405696) about this and we probably want to also forbid generic consts in the default
    type of a parameter, e.g. `struct Foo<T, U = [u8; std::mem::size_of::<T>()]>`, this is currently still allowed
    and I will probably fix that in a followup PR.
    
    r? @varkor @eddyb
    Manishearth authored Jul 16, 2020
    Configuration menu
    Copy the full SHA
    ea5affa View commit details
    Browse the repository at this point in the history
  26. Rollup merge of rust-lang#74171 - ehuss:44056-debug-macos, r=nikomats…

    …akis
    
    Fix 44056 test with debug on macos.
    
    The test `codegen/issue-44056-macos-tls-align.rs` fails on macos if `debug-assertions` is enabled in `config.toml`.  It has the following error:
    
    ```
    /Users/eric/Proj/rust/rust/src/test/codegen/issue-44056-macos-tls-align.rs:9:11: error: CHECK: expected string not found in input
    // CHECK: @STATIC_VAR_1 = thread_local local_unnamed_addr global <{ [32 x i8] }> zeroinitializer, section "__DATA,__thread_bss", align 4
              ^
    /Users/eric/Proj/rust/rust/build/x86_64-apple-darwin/test/codegen/issue-44056-macos-tls-align/issue-44056-macos-tls-align.ll:1:1: note: scanning from here
    ; ModuleID = 'issue_44056_macos_tls_align.3a1fbbbh-cgu.0'
    ^
    /Users/eric/Proj/rust/rust/build/x86_64-apple-darwin/test/codegen/issue-44056-macos-tls-align/issue-44056-macos-tls-align.ll:9:1: note: possible intended match here
    @STATIC_VAR_1 = thread_local global <{ [32 x i8] }> zeroinitializer, section "__DATA,__thread_bss", align 4
    ^
    ```
    
    Comparing the output, the actual output is missing the text "`local_unnamed_addr`".
    
    The fix here is to ignore `local_unnamed_addr`, as it doesn't seem relevant to the test.
    Manishearth authored Jul 16, 2020
    Configuration menu
    Copy the full SHA
    6cd504d View commit details
    Browse the repository at this point in the history
  27. Rollup merge of rust-lang#74221 - oli-obk:const_prop_ice, r=wesleywiser

    Don't panic if the lhs of a div by zero is not statically known
    
    Fixes rust-lang#73993 for real this time
    
    r? @wesleywiser
    Manishearth authored Jul 16, 2020
    Configuration menu
    Copy the full SHA
    0879a7f View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    457e7c0 View commit details
    Browse the repository at this point in the history
  29. Rollup merge of rust-lang#74359 - lzutao:rustdoc-tostring, r=Guillaum…

    …eGomez
    
    rustdoc: Rename internal API fns to `into_string`
    
    to avoid surprising listed in API guidelines.
    Manishearth authored Jul 16, 2020
    Configuration menu
    Copy the full SHA
    7702ea2 View commit details
    Browse the repository at this point in the history
  30. Rollup merge of rust-lang#74386 - msizanoen1:riscv-add-manifest-host,…

    … r=pietroalbini
    
    Add RISC-V GNU/Linux to src/tools/build-manifest as a host platform
    
    Missed during rust-lang#72973
    Manishearth authored Jul 16, 2020
    Configuration menu
    Copy the full SHA
    79a9089 View commit details
    Browse the repository at this point in the history
  31. Rollup merge of rust-lang#74391 - ssomers:btree_refactor, r=Mark-Simu…

    …lacrum
    
    BtreeMap: superficially refactor root access
    
    Remove or comment every unwrap in BTreeMap's main code and more.
    
    r? @Mark-Simulacrum
    Manishearth authored Jul 16, 2020
    Configuration menu
    Copy the full SHA
    a1936ba View commit details
    Browse the repository at this point in the history
  32. Rollup merge of rust-lang#74395 - Mark-Simulacrum:stage0-next, r=piet…

    …roalbini
    
    Bump version to 1.47
    
    This also bumps to a more recent rustfmt version, just to keep us relatively up to date (though almost nothing has changed in rustfmt we use beyond bumps to the parser infra). No formatting changes as a result of this.
    
    r? @pietroalbini
    Manishearth authored Jul 16, 2020
    Configuration menu
    Copy the full SHA
    828708d View commit details
    Browse the repository at this point in the history