]> git.proxmox.com Git - rustc.git/blob - src/test/ui/issues/issue-41888.rs
New upstream version 1.38.0+dfsg1
[rustc.git] / src / test / ui / issues / issue-41888.rs
1 // run-pass
2 fn main() { let _ = g(Some(E::F(K))); }
3
4 type R = Result<(), ()>;
5 struct K;
6
7 enum E {
8 F(K), // must not be built-in type
9 #[allow(dead_code)]
10 G(Box<E>, Box<E>),
11 }
12
13 fn translate(x: R) -> R { x }
14
15 fn g(mut status: Option<E>) -> R {
16 loop {
17 match status {
18 Some(infix_or_postfix) => match infix_or_postfix {
19 E::F(_op) => { // <- must be captured by value
20 match Ok(()) {
21 Err(err) => return Err(err),
22 Ok(_) => {},
23 };
24 }
25 _ => (),
26 },
27 _ => match translate(Err(())) {
28 Err(err) => return Err(err),
29 Ok(_) => {},
30 }
31 }
32 status = None;
33 }
34 }