]>
git.proxmox.com Git - rustc.git/blob - src/test/codegen-units/item-collection/trait-method-as-argument.rs
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 //~ TRANS_ITEM fn core::ops[0]::function[0]::FnOnce[0]::call_once[0]<fn(u32) -> u32, (u32)>
44 take_foo_once(Trait
::foo
, 0u32);
46 //~ TRANS_ITEM fn trait_method_as_argument::take_foo_once[0]<char, fn(char) -> char>
47 //~ TRANS_ITEM fn trait_method_as_argument::Trait[0]::foo[0]<char>
48 //~ TRANS_ITEM fn core::ops[0]::function[0]::FnOnce[0]::call_once[0]<fn(char) -> char, (char)>
49 take_foo_once(Trait
::foo
, 'c'
);
51 //~ TRANS_ITEM fn trait_method_as_argument::take_foo[0]<u32, fn(u32) -> u32>
52 //~ TRANS_ITEM fn core::ops[0]::function[0]::Fn[0]::call[0]<fn(u32) -> u32, (u32)>
53 take_foo(Trait
::foo
, 0u32);
55 //~ TRANS_ITEM fn trait_method_as_argument::take_foo[0]<char, fn(char) -> char>
56 //~ TRANS_ITEM fn core::ops[0]::function[0]::Fn[0]::call[0]<fn(char) -> char, (char)>
57 take_foo(Trait
::foo
, 'c'
);
59 //~ TRANS_ITEM fn trait_method_as_argument::take_foo_mut[0]<u32, fn(u32) -> u32>
60 //~ TRANS_ITEM fn core::ops[0]::function[0]::FnMut[0]::call_mut[0]<fn(char) -> char, (char)>
61 take_foo_mut(Trait
::foo
, 0u32);
63 //~ TRANS_ITEM fn trait_method_as_argument::take_foo_mut[0]<char, fn(char) -> char>
64 //~ TRANS_ITEM fn core::ops[0]::function[0]::FnMut[0]::call_mut[0]<fn(u32) -> u32, (u32)>
65 take_foo_mut(Trait
::foo
, 'c'
);