Michael Goulet
Michael Goulet
rustc wants to use derivative to simplify `PartialEq` derives, but encounters a pretty [significant perf hit](https://github.com/rust-lang/rust/pull/117408#issuecomment-1786120320) because the `derivative(PartialEq)` impl will add a discriminant comparison first, unlike our hand-rolled implementations....
Implement `trailing_semicolon = "Preserve"` to preserve existing semicolons but also don't add new ones even if, e.g., we break a block. I discovered some bugs in the formatting of `return...
Currently in method probing, if we fail to pick a method, then we reset and try to collect relevant candidates for method errors: https://github.com/rust-lang/rust/blob/34582118afaf00b0eb2d209a90b181c7156b501c/compiler/rustc_hir_typeck/src/method/probe.rs#L953-L993 However, we do method lookups via...
Follow-up from #125076. r? lcnr
Formatting asssociated const equality bounds was broken in #125076. This is because rustdoc uses: https://github.com/rust-lang/rust/blob/030a12ce2b1ee42f2d8837b1b500fd9cf12ea191/src/librustdoc/clean/types.rs#L1307 Where the LHS is `Type` even though it definitely cannot be `Type`. It should likely...
r? lcnr
This crate may break in https://github.com/rust-lang/rust/pull/123531. The `K: ?Sized` bound is unused by any of the code in the library, and also isn't even theoretically *able* to be used either...
This RFC adds an `async` bound modifier to the `Fn` family of trait bounds. The combination desugars to a set of perma-unstable `AsyncFn{,Mut,Once}` traits that parallel the current `Fn{,Mut,Once}` traits....
This is the uncontroversial part of #129532. This simply inlines the `predicates_defined_on` into into `predicates_of`. Nothing should change here logically.
#129059 uncovered an interesting issue in argument checking. When we check arguments, we create three sets of types: * Formals * Expected * Actuals The **actuals** are the types of...