In suggest_missing_return_type, erase late bound regions after normalizing
This commit is contained in:
parent
497ee321af
commit
1ed18f589e
3 changed files with 41 additions and 1 deletions
19
src/test/ui/generic-associated-types/issue-88360.rs
Normal file
19
src/test/ui/generic-associated-types/issue-88360.rs
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
#![feature(generic_associated_types)]
|
||||
|
||||
trait GatTrait {
|
||||
type Gat<'a>;
|
||||
|
||||
fn test(&self) -> Self::Gat<'_>;
|
||||
}
|
||||
|
||||
trait SuperTrait<T>
|
||||
where
|
||||
for<'a> Self: GatTrait<Gat<'a> = &'a T>,
|
||||
{
|
||||
fn copy(&self) -> Self::Gat<'_> where T: Copy {
|
||||
*self.test()
|
||||
//~^ mismatched types
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
20
src/test/ui/generic-associated-types/issue-88360.stderr
Normal file
20
src/test/ui/generic-associated-types/issue-88360.stderr
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
error[E0308]: mismatched types
|
||||
--> $DIR/issue-88360.rs:14:9
|
||||
|
|
||||
LL | trait SuperTrait<T>
|
||||
| - this type parameter
|
||||
...
|
||||
LL | fn copy(&self) -> Self::Gat<'_> where T: Copy {
|
||||
| ------------- expected `&T` because of return type
|
||||
LL | *self.test()
|
||||
| ^^^^^^^^^^^^
|
||||
| |
|
||||
| expected `&T`, found type parameter `T`
|
||||
| help: consider borrowing here: `&*self.test()`
|
||||
|
|
||||
= note: expected reference `&T`
|
||||
found type parameter `T`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0308`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue