Skip to content

Commit e7690e7

Browse files
committed
Auto merge of #29206 - apasel422:issue-28936, r=alexcrichton
Closes #28936.
2 parents ea2dabf + 0f6b718 commit e7690e7

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

src/test/run-pass/issue-28936.rs

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
pub type Session = i32;
12+
pub struct StreamParser<'a, T> {
13+
_tokens: T,
14+
_session: &'a mut Session,
15+
}
16+
17+
impl<'a, T> StreamParser<'a, T> {
18+
pub fn thing(&mut self) -> bool { true }
19+
}
20+
21+
pub fn parse_stream<T: Iterator<Item=i32>, U, F>(
22+
_session: &mut Session, _tokens: T, _f: F) -> U
23+
where F: Fn(&mut StreamParser<T>) -> U { panic!(); }
24+
25+
pub fn thing(session: &mut Session) {
26+
let mut stream = vec!(1, 2, 3).into_iter();
27+
28+
let _b = parse_stream(session,
29+
stream.by_ref(),
30+
// replacing the above with the following fixes it
31+
//&mut stream,
32+
|p| p.thing());
33+
34+
}
35+
36+
fn main() {}

0 commit comments

Comments
 (0)