Michael Goulet

Results 47 issues of Michael Goulet

See https://github.com/rust-lang/rust/pull/100046#issuecomment-1214446815 This lifetime bound `S: 'a` should've been required the whole time, but the compiler was not smart enough and had unsoundness :sweat_smile:

Both use `:` in Rust, but the colon is always parsed as outlives in formality. This was confusing when @jackh726 wrote his projection PR, since it looked like trait goals...

Normalize the type outlives assumptions and obligations in MIR borrowck. This should fix any of the lazy-norm-related MIR borrowck problems. Also some cleanups from last PR: 1. Normalize obligations in...

T-compiler
S-waiting-on-bors

This PR implements a new lowering for async closures via `TyKind::CoroutineClosure` which handles the curious relationship between the closure and the coroutine that it returns. I wrote up a bunch...

T-rustdoc
T-compiler
S-waiting-on-bors
T-libs
WG-trait-system-refactor

Given a deeply nested rigid projection like `::Assoc3`, this PR adjusts both trait solvers to look at the item bounds for all of `Assoc3`, `Assoc2`, and `Assoc1` in order to...

S-waiting-on-review
needs-fcp
T-types
WG-trait-system-refactor

Pending try builds have their checkboxes unchecked, even though the code suggests they should be disabled: https://github.com/rust-lang/homu/blob/c8f51b8e261541c13747e50097cd8899aae9537b/homu/html/queue.html#L180-L184 ![image](https://user-images.githubusercontent.com/3674314/216720499-d93fccc4-4bb9-4346-8a0f-3a21e8e70be9.png) I can see someone accidentally rolling up a try build because of...

Self-explanatory. cc rust-lang/rust#114901 This implementation is probably super busted. I have no idea what most of these options in rustfmt mean, lol.

pr-ready-to-merge
release-notes

https://rustc-dev-guide.rust-lang.org/stability.html probably could live in https://std-dev-guide.rust-lang.org/, since it's not that relevant to the compiler. Just a thought.

This PR reworks method probing to use fulfillment instead of a `for`-loop of `evaluate_predicate` calls, and moves normalization from method candidate assembly into the `consider_probe`, where it's applied to *all*...

T-compiler
S-waiting-on-crater

During `predicates_of`, we install outlives obligations which link the bivariant lifetimes of an opaque to their invariant (captured) copies. During NLL, we don't enforce well-formedness of an opaque that we...

T-compiler
S-waiting-on-review