diff options
| author | jackh726 <jack.huey@umassmed.edu> | 2021-09-10 23:44:03 -0400 |
|---|---|---|
| committer | jackh726 <jack.huey@umassmed.edu> | 2021-09-11 00:43:06 -0400 |
| commit | 1ed18f589ec62bf99a4ff541830fbc2bc48ce9f1 (patch) | |
| tree | 1d09cc8ee3fa28ee0142c5e9b011a31f3364cefd /src/test | |
| parent | 497ee321af3b8496eaccd7af7b437f18bab81abf (diff) | |
| download | rust-1ed18f589ec62bf99a4ff541830fbc2bc48ce9f1.tar.gz rust-1ed18f589ec62bf99a4ff541830fbc2bc48ce9f1.zip | |
In suggest_missing_return_type, erase late bound regions after normalizing
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/ui/generic-associated-types/issue-88360.rs | 19 | ||||
| -rw-r--r-- | src/test/ui/generic-associated-types/issue-88360.stderr | 20 |
2 files changed, 39 insertions, 0 deletions
diff --git a/src/test/ui/generic-associated-types/issue-88360.rs b/src/test/ui/generic-associated-types/issue-88360.rs new file mode 100644 index 00000000000..06af3f5ec96 --- /dev/null +++ b/src/test/ui/generic-associated-types/issue-88360.rs @@ -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() {} diff --git a/src/test/ui/generic-associated-types/issue-88360.stderr b/src/test/ui/generic-associated-types/issue-88360.stderr new file mode 100644 index 00000000000..cfbf3aaa4e6 --- /dev/null +++ b/src/test/ui/generic-associated-types/issue-88360.stderr @@ -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`. |
