diff options
Diffstat (limited to 'tests/ui/traits/cycle-type-trait.rs')
-rw-r--r-- | tests/ui/traits/cycle-type-trait.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/ui/traits/cycle-type-trait.rs b/tests/ui/traits/cycle-type-trait.rs new file mode 100644 index 000000000..c62d01403 --- /dev/null +++ b/tests/ui/traits/cycle-type-trait.rs @@ -0,0 +1,25 @@ +// run-pass +#![allow(dead_code)] +// Test a case where a supertrait references a type that references +// the original trait. This poses no problem at the moment. + +// pretty-expanded FIXME #23616 + +trait Chromosome: Get<Struct<i32>> { +} + +trait Get<A> { + fn get(&self) -> A; +} + +struct Struct<C:Chromosome> { c: C } + +impl Chromosome for i32 { } + +impl Get<Struct<i32>> for i32 { + fn get(&self) -> Struct<i32> { + Struct { c: *self } + } +} + +fn main() { } |