Test HRTB issue accepted by compiler
This commit is contained in:
parent
c43d03a19f
commit
e5017dec58
31
src/test/ui/issues/issue-50301.rs
Normal file
31
src/test/ui/issues/issue-50301.rs
Normal file
@ -0,0 +1,31 @@
|
||||
// Tests that HRTBs are correctly accepted -- https://github.com/rust-lang/rust/issues/50301
|
||||
// check-pass
|
||||
trait Trait
|
||||
where
|
||||
for<'a> &'a Self::IntoIter: IntoIterator<Item = u32>,
|
||||
{
|
||||
type IntoIter;
|
||||
fn get(&self) -> Self::IntoIter;
|
||||
}
|
||||
|
||||
struct Impl(Vec<u32>);
|
||||
|
||||
impl Trait for Impl {
|
||||
type IntoIter = ImplIntoIter;
|
||||
fn get(&self) -> Self::IntoIter {
|
||||
ImplIntoIter(self.0.clone())
|
||||
}
|
||||
}
|
||||
|
||||
struct ImplIntoIter(Vec<u32>);
|
||||
|
||||
impl<'a> IntoIterator for &'a ImplIntoIter {
|
||||
type Item = <Self::IntoIter as Iterator>::Item;
|
||||
type IntoIter = std::iter::Cloned<std::slice::Iter<'a, u32>>;
|
||||
fn into_iter(self) -> Self::IntoIter {
|
||||
(&self.0).into_iter().cloned()
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user