lcnr
lcnr
Using `Reveal::All` before borrowck is incorrect, both because that means that we peek into opaque types at a point which is still observable by the user, and more importantly, because...
cc https://github.com/rust-lang/rust/pull/100747/files#r962488178
I think this change is correct. Here's my understanding of this: This previously wasn't done was so that we don't consider `Foo
tried to change it to a hard error in #102474 but breaking the more than 1000 dependents of `traitobject` doesn't feel great :sweat_smile: This lint has existed since more than...
```rust #[test] fn depth_not_on_stack() { test! { program { #[coinductive] trait A {} #[coinductive] trait B {} #[coinductive] trait C {} #[coinductive] trait D {} #[coinductive] trait E {} impl...
allows a bunch of further cleanups and generally simplifies the type system. To handle https://github.com/rust-lang/trait-system-refactor-initiative/issues/8 we'll have to add a some additional complexity to the `(Alias, Infer)` branches in alias-relate,...
The basic idea of this PR is that we don't generalize aliases when the instantiation could fail later on, either due to the *occurs check* or because of a universe...
- #59490 - #56105 --- and adapt the old solver to not rely on universe errors for higher ranked goals to impact candidate selection. This matches the behavior of the...
```rust trait CallMeMaybe { fn mk() -> Self; fn subtype(self, x: &'b T) -> &'a T; } struct Foo &'a T { x } } // `foo` must not compile...