1 // Copyright 2017 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.
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.
11 fn main() { let _ = g(Some(E::F(K))); }
13 type R = Result<(), ()>;
17 F(K), // must not be built-in type
22 fn translate(x: R) -> R { x }
24 fn g(mut status: Option<E>) -> R {
27 Some(infix_or_postfix) => match infix_or_postfix {
28 E::F(_op) => { // <- must be captured by value
30 Err(err) => return Err(err),
36 _ => match translate(Err(())) {
37 Err(err) => return Err(err),