Auto merge of #125289 - WaffleLapkin:never-obligations, r=compiler-errors
Implement lint for obligations broken by never type fallback change This is the second (and probably last major?) lint required for the never type fallback change. The idea is to check if the code errors with `fallback = ()` and if it errors with `fallback = !` and if it went from "ok" to "error", lint. I'm not happy with the diagnostic, ideally we'd highlight what bound is the problem. But I'm really unsure how to do that (cc `@jackh726,` iirc you had some ideas?) r? `@compiler-errors` Thanks `@BoxyUwU` with helping with trait solver stuff when I was implementing the initial version of this lint. Tracking: - https://github.com/rust-lang/rust/issues/123748
This commit is contained in:
commit
b6e5e3ffbb
27 changed files with 344 additions and 29 deletions
|
|
@ -390,9 +390,7 @@ mod issue7344 {
|
|||
|
||||
impl<T> RetImplTraitSelf2<T> {
|
||||
// should not trigger lint
|
||||
fn new(t: T) -> impl Trait2<(), Self> {
|
||||
unimplemented!()
|
||||
}
|
||||
fn new(t: T) -> impl Trait2<(), Self> {}
|
||||
}
|
||||
|
||||
struct RetImplTraitNoSelf2<T>(T);
|
||||
|
|
@ -401,7 +399,6 @@ mod issue7344 {
|
|||
// should trigger lint
|
||||
fn new(t: T) -> impl Trait2<(), i32> {
|
||||
//~^ ERROR: methods called `new` usually return `Self`
|
||||
unimplemented!()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -96,11 +96,10 @@ LL | | }
|
|||
| |_________^
|
||||
|
||||
error: methods called `new` usually return `Self`
|
||||
--> tests/ui/new_ret_no_self.rs:402:9
|
||||
--> tests/ui/new_ret_no_self.rs:400:9
|
||||
|
|
||||
LL | / fn new(t: T) -> impl Trait2<(), i32> {
|
||||
LL | |
|
||||
LL | | unimplemented!()
|
||||
LL | | }
|
||||
| |_________^
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue