diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2019-09-20 16:54:27 -0400 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2019-10-03 05:59:18 -0400 |
| commit | 4396a1ccd43bd04e70936749077dda888e27ab82 (patch) | |
| tree | f7a1ac5819e2ec2f0b70a835eee3f93d00ebdac2 | |
| parent | 2daa404e9a151a2e8262cbd6d8c209fd067aca16 (diff) | |
| download | rust-4396a1ccd43bd04e70936749077dda888e27ab82.tar.gz rust-4396a1ccd43bd04e70936749077dda888e27ab82.zip | |
add regression test for #60218
| -rw-r--r-- | src/test/ui/issues/issue-60218.rs | 19 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-60218.stderr | 15 |
2 files changed, 34 insertions, 0 deletions
diff --git a/src/test/ui/issues/issue-60218.rs b/src/test/ui/issues/issue-60218.rs new file mode 100644 index 00000000000..4926691f3b5 --- /dev/null +++ b/src/test/ui/issues/issue-60218.rs @@ -0,0 +1,19 @@ +// Regression test for #60218 +// +// This was reported to cause ICEs. + +use std::iter::Map; + +pub trait Foo {} + +pub fn trigger_error<I, F>(iterable: I, functor: F) +where + for<'t> &'t I: IntoIterator, +for<'t> Map<<&'t I as IntoIterator>::IntoIter, F>: Iterator, +for<'t> <Map<<&'t I as IntoIterator>::IntoIter, F> as Iterator>::Item: Foo, +{ +} + +fn main() { + trigger_error(vec![], |x: &u32| x) //~ ERROR E0277 +} diff --git a/src/test/ui/issues/issue-60218.stderr b/src/test/ui/issues/issue-60218.stderr new file mode 100644 index 00000000000..a9970cc1096 --- /dev/null +++ b/src/test/ui/issues/issue-60218.stderr @@ -0,0 +1,15 @@ +error[E0277]: the trait bound `for<'t> <std::iter::Map<<&'t _ as std::iter::IntoIterator>::IntoIter, _> as std::iter::Iterator>::Item: Foo` is not satisfied + --> $DIR/issue-60218.rs:18:5 + | +LL | pub fn trigger_error<I, F>(iterable: I, functor: F) + | ------------- +... +LL | for<'t> <Map<<&'t I as IntoIterator>::IntoIter, F> as Iterator>::Item: Foo, + | --- required by this bound in `trigger_error` +... +LL | trigger_error(vec![], |x: &u32| x) + | ^^^^^^^^^^^^^ the trait `for<'t> Foo` is not implemented for `<std::iter::Map<<&'t _ as std::iter::IntoIterator>::IntoIter, _> as std::iter::Iterator>::Item` + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0277`. |
