1 // Copyright 2012-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.
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 // ignore-tidy-linelength
12 // compile-flags:-Zprint-trans-items=eager
17 fn foo(self) -> Self { self }
21 fn foo(self) -> u32 { self }
27 fn take_foo_once<T, F: FnOnce(T) -> T>(f: F, arg: T) -> T {
31 fn take_foo<T, F: Fn(T) -> T>(f: F, arg: T) -> T {
35 fn take_foo_mut<T, F: FnMut(T) -> T>(mut f: F, arg: T) -> T {
39 //~ TRANS_ITEM fn trait_method_as_argument::main[0]
41 //~ TRANS_ITEM fn trait_method_as_argument::take_foo_once[0]<u32, fn(u32) -> u32>
42 //~ TRANS_ITEM fn trait_method_as_argument::{{impl}}[0]::foo[0]
43 take_foo_once(Trait::foo, 0u32);
45 //~ TRANS_ITEM fn trait_method_as_argument::take_foo_once[0]<char, fn(char) -> char>
46 //~ TRANS_ITEM fn trait_method_as_argument::Trait[0]::foo[0]<char>
47 take_foo_once(Trait::foo, 'c');
49 //~ TRANS_ITEM fn trait_method_as_argument::take_foo[0]<u32, fn(u32) -> u32>
50 take_foo(Trait::foo, 0u32);
52 //~ TRANS_ITEM fn trait_method_as_argument::take_foo[0]<char, fn(char) -> char>
53 take_foo(Trait::foo, 'c');
55 //~ TRANS_ITEM fn trait_method_as_argument::take_foo_mut[0]<u32, fn(u32) -> u32>
56 take_foo_mut(Trait::foo, 0u32);
58 //~ TRANS_ITEM fn trait_method_as_argument::take_foo_mut[0]<char, fn(char) -> char>
59 take_foo_mut(Trait::foo, 'c');
62 //~ TRANS_ITEM drop-glue i8