2018-08-30 07:18:55 -05:00
|
|
|
//@ run-pass
|
2016-09-13 17:31:26 -05:00
|
|
|
// Regression test for #36053. ICE was caused due to obligations being
|
|
|
|
// added to a special, dedicated fulfillment cx during a
|
|
|
|
// probe. Problem seems to be related to the particular definition of
|
|
|
|
// `FusedIterator` in std but I was not able to isolate that into an
|
|
|
|
// external crate.
|
|
|
|
|
|
|
|
use std::iter::FusedIterator;
|
|
|
|
|
2023-12-27 16:11:58 -06:00
|
|
|
struct Thing<'a>(#[allow(dead_code)] &'a str);
|
2016-09-13 17:31:26 -05:00
|
|
|
impl<'a> Iterator for Thing<'a> {
|
|
|
|
type Item = &'a str;
|
|
|
|
fn next(&mut self) -> Option<&'a str> {
|
|
|
|
None
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
impl<'a> FusedIterator for Thing<'a> {}
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
Thing("test").fuse().filter(|_| true).count();
|
|
|
|
}
|