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

Closed
wants to merge 16 commits into from

Commits on Apr 21, 2024

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

Commits on May 8, 2024

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

Commits on May 11, 2024

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

Commits on May 12, 2024

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

Commits on May 18, 2024

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

Commits on May 20, 2024

  1. Force the inner coroutine of an async closure to move if the outer …

    …closure is `move` and `FnOnce`
    compiler-errors committed May 20, 2024
    Configuration menu
    Copy the full SHA
    6b30582 View commit details
    Browse the repository at this point in the history

Commits on May 21, 2024

  1. remove tracing tree indent lines

    lcnr committed May 21, 2024
    Configuration menu
    Copy the full SHA
    ee4a51a View commit details
    Browse the repository at this point in the history
  2. update UI tests

    lcnr committed May 21, 2024
    Configuration menu
    Copy the full SHA
    ec9571a View commit details
    Browse the repository at this point in the history
  3. add logging to search graph

    lcnr committed May 21, 2024
    Configuration menu
    Copy the full SHA
    1005cc7 View commit details
    Browse the repository at this point in the history

Commits on May 22, 2024

  1. Rollup merge of rust-lang#124227 - compiler-errors:hack-check-method-…

    …res, r=estebank
    
    Make sure that the method resolution matches in `note_source_of_type_mismatch_constraint`
    
    `note_source_of_type_mismatch_constraint` is a pile of hacks that I implemented to cover up another pile of hacks.
    
    It does a bunch of re-confirming methods, but it wasn't previously checking that the methods it was looking (back) up were equal to the methods we previously had. This PR adds those checks.
    
    Fixes rust-lang#118185
    matthiaskrgr authored May 22, 2024
    Configuration menu
    Copy the full SHA
    509dc65 View commit details
    Browse the repository at this point in the history
  2. Rollup merge of rust-lang#124896 - RalfJung:miri-intrinsic-fallback, …

    …r=oli-obk
    
    miri: rename intrinsic_fallback_checks_ub to intrinsic_fallback_is_spec
    
    Checking UB is not the only concern, we also have to make sure we are not losing out on non-determinism.
    
    r? `@oli-obk` (not urgent, take your time)
    matthiaskrgr authored May 22, 2024
    Configuration menu
    Copy the full SHA
    2c42a0b View commit details
    Browse the repository at this point in the history
  3. Rollup merge of rust-lang#125015 - fmease:pat-tys-proh-gen-args-on-ct…

    …-params, r=spastorino
    
    Pattern types: Prohibit generic args on const params
    
    Addresses https://github.com/rust-lang/rust/pull/123689/files#r1562676629.
    
    NB: Technically speaking, *not* prohibiting generics args on const params is not a bug as `pattern_types` is an *internal* feature and as such any uncaught misuses of it are considered to be the fault of the user. However, permitting this makes me slightly uncomfortable esp. since we might want to make pattern types available to the public at some point and I don't want this oversight to be able to slip into the language (for comparison, ICEs triggered by the use of internal features are like super fine).
    
    Furthermore, this is an ad hoc fix. A more general fix would be changing the representation of the pattern part of pattern types in such a way that it can reuse preexisting lowering routines for exprs / anon consts. See also this [Zulip discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/pattern.20type.20HIR.20nodes/near/432410768) and rust-lang#124650.
    
    Also note that we currently don't properly typeck the pattern of pat tys. This however is out of scope for this PR.
    
    cc `@oli-obk`
    r? `@spastorino` as discussed
    matthiaskrgr authored May 22, 2024
    Configuration menu
    Copy the full SHA
    7119efb View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#125043 - RalfJung:ref-type-safety-invariant…

    …, r=scottmcm
    
    reference type safety invariant docs: clarification
    
    The old text could have been read as saying that you can call a function if these requirements are upheld, which is definitely not true as they are an underapproximation of the actual safety invariant.
    
    I removed the part about functions relaxing the requirements via their documentation... this seems incoherent with saying that it may actually be unsound to ever temporarily violate the requirement. Furthermore, a function *cannot* just relax this for its return value, that would in general be unsound. And the part about "unsafe code in a safe function may assume these invariants are ensured of arguments passed by the caller" also interacts with relaxing things: clearly, if the invariant has been relaxed, unsafe code cannot rely on it any more. There may be a place to give general guidance on what kinds of function contracts can exist, but the reference type is definitely not the right place to write that down.
    
    I also took a clarification from rust-lang#121965 that is orthogonal to the rest of that PR.
    
    Cc `@joshlf` `@scottmcm`
    matthiaskrgr authored May 22, 2024
    Configuration menu
    Copy the full SHA
    d0ef840 View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#125259 - compiler-errors:fn-mut-as-a-treat,…

    … r=oli-obk
    
    An async closure may implement `FnMut`/`Fn` if it has no self-borrows
    
    There's no reason that async closures may not implement `FnMut` or `Fn` if they don't actually borrow anything with the closure's env lifetime. Specifically, rust-lang#123660 made it so that we don't always need to borrow captures from the closure's env.
    
    See the doc comment on `should_reborrow_from_env_of_parent_coroutine_closure`:
    
    https://github.com/rust-lang/rust/blob/c00957a3e269219413041a4e3565f33b1f9d0779/compiler/rustc_hir_typeck/src/upvar.rs#L1777-L1823
    
    If there are no such borrows, then we are free to implement `FnMut` and `Fn` as permitted by our closure's inferred `ClosureKind`.
    
    As far as I can tell, this change makes `async || {}` work in precisely the set of places they used to work before rust-lang#120361.
    Fixes rust-lang#125247.
    
    r? oli-obk
    matthiaskrgr authored May 22, 2024
    Configuration menu
    Copy the full SHA
    725a7fc View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#125306 - compiler-errors:closure-incongruen…

    …cy, r=oli-obk
    
    Force the inner coroutine of an async closure to `move` if the outer closure is `move` and `FnOnce`
    
    See the detailed comment in `upvar.rs`.
    
    Fixes rust-lang#124867.
    Fixes rust-lang#124487.
    
    r? oli-obk
    matthiaskrgr authored May 22, 2024
    Configuration menu
    Copy the full SHA
    bf681bb View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#125378 - lcnr:tracing-no-lines, r=oli-obk

    remove tracing tree indent lines
    
    This allows vscode to collapse nested spans without having to manually remove the indent lines. This is incredibly useful when logging the new solver. I don't mind making them optional depending on some environment flag if you prefer using indent lines
    
    For a gist of the new output, see https://gist.github.com/lcnr/bb4360ddbc5cd4631f2fbc569057e5eb#file-example-output-L181
    
    r? `@oli-obk`
    matthiaskrgr authored May 22, 2024
    Configuration menu
    Copy the full SHA
    4c886b9 View commit details
    Browse the repository at this point in the history