Skip to content

Commit

Permalink
add regression test for rust-lang#70586
Browse files Browse the repository at this point in the history
  • Loading branch information
lcnr committed Jul 16, 2020
1 parent 137ca05 commit eee160c
Showing 1 changed file with 33 additions and 0 deletions.
33 changes: 33 additions & 0 deletions src/test/ui/const-generics/type-dependent/issue-70586.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
// check-pass
#![feature(const_generics)]
#![allow(incomplete_features)]

use std::marker::PhantomData;

// This namespace is necessary for the ICE to trigger
struct Namespace;

impl Namespace {
pub fn const_chunks_exact<T, const N: usize>() -> ConstChunksExact<'static, T, N> {
ConstChunksExact { inner: PhantomData }
}
}


#[derive(Debug)]
pub struct ConstChunksExact<'a, T, const N: usize> {
inner: PhantomData<&'a T>
}

impl <'a, T, const N: usize> Iterator for ConstChunksExact<'a, T, { N }> {
type Item = &'a [T; N];

fn next(&mut self) -> Option<Self::Item> {
unreachable!()
}
}

fn main() {
let mut chunks = Namespace::const_chunks_exact::<i32, 3usize>();
let _next: &[i32; 3] = chunks.next().unwrap();
}

0 comments on commit eee160c

Please sign in to comment.