diff options
| author | Bastian Kauschke <bastian_kauschke@hotmail.de> | 2020-07-16 12:10:15 +0200 |
|---|---|---|
| committer | Bastian Kauschke <bastian_kauschke@hotmail.de> | 2020-07-16 12:10:15 +0200 |
| commit | eee160cdea88da87396f5682220193a01ff177b0 (patch) | |
| tree | 84849464bf184ef8e24bec52b09f2aed563e7921 | |
| parent | 137ca05ccd2ef6f0bb5583f943f4395272a170c9 (diff) | |
| download | rust-eee160cdea88da87396f5682220193a01ff177b0.tar.gz rust-eee160cdea88da87396f5682220193a01ff177b0.zip | |
add regression test for #70586
| -rw-r--r-- | src/test/ui/const-generics/type-dependent/issue-70586.rs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/test/ui/const-generics/type-dependent/issue-70586.rs b/src/test/ui/const-generics/type-dependent/issue-70586.rs new file mode 100644 index 00000000000..5a0888506eb --- /dev/null +++ b/src/test/ui/const-generics/type-dependent/issue-70586.rs @@ -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(); +} |
