diff options
| author | bors <bors@rust-lang.org> | 2021-01-22 10:12:05 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-01-22 10:12:05 +0000 |
| commit | bbc01bb624a960533e049fdb98d0489ff2a8de06 (patch) | |
| tree | 7c3071c605946aadde8c72cabb20c45d67cc51f8 /src/test | |
| parent | 25f39fe80293f77bd86f64a1261a3e2c0ca23847 (diff) | |
| parent | f32a6acdab446d7fd018bb2a975769ae995aa4c7 (diff) | |
| download | rust-bbc01bb624a960533e049fdb98d0489ff2a8de06.tar.gz rust-bbc01bb624a960533e049fdb98d0489ff2a8de06.zip | |
Auto merge of #80558 - lcnr:gat-variance, r=matthewjasper
require gat substs to be invariant fixes #69184, fixes #80766 r? `@matthewjasper` probably
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/ui/generic-associated-types/variance_constraints.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/test/ui/generic-associated-types/variance_constraints.rs b/src/test/ui/generic-associated-types/variance_constraints.rs new file mode 100644 index 00000000000..36db80706b4 --- /dev/null +++ b/src/test/ui/generic-associated-types/variance_constraints.rs @@ -0,0 +1,24 @@ +// check-pass +// issue #69184 +#![feature(generic_associated_types)] +#![allow(incomplete_features)] + +trait A { + type B<'a>; + + fn make_b<'a>(&'a self) -> Self::B<'a>; +} + +struct S {} +impl A for S { + type B<'a> = &'a S; + fn make_b<'a>(&'a self) -> &'a Self { + self + } +} + +enum E<'a> { + S(<S as A>::B<'a>), +} + +fn main() {} |
