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 21 pull requests #74408

Merged
merged 90 commits into from
Jul 16, 2020
Merged

Rollup of 21 pull requests #74408

merged 90 commits into from
Jul 16, 2020

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

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 8, 2020

  1. Configuration menu
    Copy the full SHA
    b0884c0 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 <me@aman-arora.com>
    Co-authored-by: Chris Pardy <chrispardy36@gmail.com>
    Co-authored-by: Dhruv Jauhar <dhruvjhr@gmail.com>
    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 14, 2020

  1. Configuration menu
    Copy the full SHA
    382d5bb View commit details
    Browse the repository at this point in the history
  2. 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. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. Configuration menu
    Copy the full SHA
    cf844d2 View commit details
    Browse the repository at this point in the history
  10. 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
  11. Configuration menu
    Copy the full SHA
    3576f5d View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    bbe4971 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    2f29e69 View commit details
    Browse the repository at this point in the history
  14. 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
  15. 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
  16. --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
  17. 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
  18. Configuration menu
    Copy the full SHA
    4c88070 View commit details
    Browse the repository at this point in the history
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. Configuration menu
    Copy the full SHA
    703f680 View commit details
    Browse the repository at this point in the history

Commits on Jul 16, 2020

  1. Fix typo in std::mem::transmute documentation

    u32::from_ge_bytes method does not exist; replace with u32::from_be_bytes
    ColoredCarrot committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    593c7fe 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
    e009b53 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    333dce9 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    137ca05 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    eee160c View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    f52039d View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    a2b1827 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    de8d2e8 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    946cb11 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    09ba0bd View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    e230950 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    d187e81 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    8faeb0e View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    ca253ca View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    b82d332 View commit details
    Browse the repository at this point in the history
  22. 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
  23. Configuration menu
    Copy the full SHA
    e28c0ea View commit details
    Browse the repository at this point in the history
  24. Configuration menu
    Copy the full SHA
    52c65e0 View commit details
    Browse the repository at this point in the history
  25. Revert "Remove "important traits" feature"

    This reverts commit 1244ced.
    Manishearth committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    9845075 View commit details
    Browse the repository at this point in the history
  26. Revert "Remove spotlight usage"

    This reverts commit 13c6d58.
    Manishearth committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    3cecd60 View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    c90fb71 View commit details
    Browse the repository at this point in the history
  28. Make spotlight show on hover

    This makes the spotlight show on hover instead of click. Clicks can be
    used to persist it, which is also what's used on mobile.
    Manishearth committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    734afb4 View commit details
    Browse the repository at this point in the history
  29. Review comments for JS

    Manishearth committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    ae6c7e6 View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    0625b29 View commit details
    Browse the repository at this point in the history
  31. Configuration menu
    Copy the full SHA
    a474b27 View commit details
    Browse the repository at this point in the history
  32. Don't position:relative on all pres

    We need it for run buttons (rust-lang#44671), but not function defs
    Manishearth committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    c621a54 View commit details
    Browse the repository at this point in the history
  33. Configuration menu
    Copy the full SHA
    5b287f6 View commit details
    Browse the repository at this point in the history
  34. 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 committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    c23f045 View commit details
    Browse the repository at this point in the history
  35. 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 committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    a8bb245 View commit details
    Browse the repository at this point in the history
  36. Rollup merge of rust-lang#73794 - GuillaumeGomez:cleanup-e0705, r=Dyl…

    …an-DPC
    
    Small cleanup for E0705 explanation
    
    r? @Dylan-DPC
    Manishearth committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    6309d9f View commit details
    Browse the repository at this point in the history
  37. 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 committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    b700835 View commit details
    Browse the repository at this point in the history
  38. Rollup merge of rust-lang#73835 - GuillaumeGomez:cleanup-e0710, r=Dyl…

    …an-DPC
    
    Clean up E0710 explanation
    
    r? @Dylan-DPC
    Manishearth committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    cc38f6f View commit details
    Browse the repository at this point in the history
  39. 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 committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    622a8b8 View commit details
    Browse the repository at this point in the history
  40. 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 committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    1cc37b6 View commit details
    Browse the repository at this point in the history
  41. Rollup merge of rust-lang#73998 - euclio:search-index-determinism, r=…

    …nikomatsakis
    
    add regression test for rust-lang#61216
    
    Fixes rust-lang#61216.
    Manishearth committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    6dc12fb View commit details
    Browse the repository at this point in the history
  42. 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 committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    ef39000 View commit details
    Browse the repository at this point in the history
  43. Rollup merge of rust-lang#74148 - GuillaumeGomez:doc-alias-check, r=M…

    …anishearth
    
    Move #[doc(alias)] check in rustc
    
    Part of rust-lang#73721.
    
    r? @ollie27
    Manishearth committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    61a3f67 View commit details
    Browse the repository at this point in the history
  44. 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 committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    6ef0dfa View commit details
    Browse the repository at this point in the history
  45. 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 committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    5d5455b View commit details
    Browse the repository at this point in the history
  46. 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 committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    a80559f View commit details
    Browse the repository at this point in the history
  47. Rollup merge of rust-lang#74325 - GuillaumeGomez:focus-source-file-si…

    …debar, r=kinnison
    
    Focus on the current file in the source file sidebar
    
    Fixes rust-lang#73360.
    
    r? @kinnison
    cc @rust-lang/rustdoc
    Manishearth committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    196243e View commit details
    Browse the repository at this point in the history
  48. 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 committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    61fccf0 View commit details
    Browse the repository at this point in the history
  49. Rollup merge of rust-lang#74370 - Manishearth:re-spotlight, r=Guillau…

    …meGomez
    
    Reintroduce spotlight / "important traits" feature
    
    (Reopened version of rust-lang#74111 because Github is broken, see discussion there)
    
    Fixes rust-lang#73785
    
    This PR reintroduces the "spotlight" ("important traits") feature.
    
    A couple changes have been made:
    
    As there were concerns about its visibility, it has been moved to be next to the return type, as opposed to being on the side.
    
    It also no longer produces a modal, it shows the traits on hover, and it can be clicked on to pin the hover bubble.
    
    ![image](https://user-images.githubusercontent.com/1617736/86674555-a82d2600-bfad-11ea-9a4a-a1a9ffd66ae5.png)
    
    ![image](https://user-images.githubusercontent.com/1617736/86674533-a1061800-bfad-11ea-9e8a-c62ad86ed0d7.png)
    
    It also works fine on mobile:
    
    ![image](https://user-images.githubusercontent.com/1617736/86674638-bda25000-bfad-11ea-8d8d-1798b608923e.png)
    Manishearth committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    fc09817 View commit details
    Browse the repository at this point in the history
  50. Rollup merge of rust-lang#74390 - ColoredCarrot:patch-1, r=lcnr

    Fix typo in std::mem::transmute documentation
    
    `u32::from_ge_bytes` function does not exist; replace with `u32::from_be_bytes`.
    It is clear that `u32::from_le_bytes` is not meant from the context; the latter is used correctly while `from_be_bytes` is misspelled.
    Manishearth committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    f821109 View commit details
    Browse the repository at this point in the history
  51. 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 committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    8f3b0ec View commit details
    Browse the repository at this point in the history
  52. Rollup merge of rust-lang#74392 - lcnr:const-generics-update, r=varkor

    const generics triage
    
    I went through all const generics issues and closed all issues which are already fixed.
    
    Some issues already have a regression test but were not closed. Also doing this as part of this PR.
    
    uff r? @eddyb @varkor
    
    closes rust-lang#61936
    closes rust-lang#62878
    closes rust-lang#63695
    closes rust-lang#67144
    closes rust-lang#68596
    closes rust-lang#69816
    closes rust-lang#70217
    closes rust-lang#70507
    closes rust-lang#70586
    closes rust-lang#71348
    closes rust-lang#71805
    closes rust-lang#73120
    closes rust-lang#73508
    closes rust-lang#73730
    closes rust-lang#74255
    Manishearth committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    c354524 View commit details
    Browse the repository at this point in the history
  53. Rollup merge of rust-lang#74397 - rhysd:patch-1, r=jonas-schievink

    Fix typo in the latest release note
    Manishearth committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    043914f View commit details
    Browse the repository at this point in the history
  54. Rollup merge of rust-lang#74406 - Mark-Simulacrum:fix-windows-maybe, …

    …r=Mark-Simulacrum
    
    Set shell for github actions CI
    
    r? @pietroalbini but because this seems at worst harmless and CI is broken self approving
    Manishearth committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    ff685f5 View commit details
    Browse the repository at this point in the history