diff options
Diffstat (limited to 'tests/ui/specialization/specialization-translate-projections-with-lifetimes.rs')
-rw-r--r-- | tests/ui/specialization/specialization-translate-projections-with-lifetimes.rs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/ui/specialization/specialization-translate-projections-with-lifetimes.rs b/tests/ui/specialization/specialization-translate-projections-with-lifetimes.rs new file mode 100644 index 000000000..904aeaa08 --- /dev/null +++ b/tests/ui/specialization/specialization-translate-projections-with-lifetimes.rs @@ -0,0 +1,33 @@ +// run-pass + +#![feature(specialization)] //~ WARN the feature `specialization` is incomplete + +trait Iterator { + fn next(&self); +} + +trait WithAssoc { + type Item; +} + +impl<'a> WithAssoc for &'a () { + type Item = &'a u32; +} + +struct Cloned<I>(#[allow(unused_tuple_struct_fields)] I); + +impl<'a, I, T: 'a> Iterator for Cloned<I> + where I: WithAssoc<Item=&'a T>, T: Clone +{ + fn next(&self) {} +} + +impl<'a, I, T: 'a> Iterator for Cloned<I> + where I: WithAssoc<Item=&'a T>, T: Copy +{ + +} + +fn main() { + Cloned(&()).next(); +} |