]>
Commit | Line | Data |
---|---|---|
48663c56 XL |
1 | // compile-flags: -Z unstable-options |
2 | ||
3 | #![feature(rustc_private)] | |
416331ca | 4 | #![deny(rustc::ty_pass_by_reference)] |
48663c56 XL |
5 | #![allow(unused)] |
6 | ||
7 | extern crate rustc; | |
8 | ||
9 | use rustc::ty::{Ty, TyCtxt}; | |
10 | ||
11 | fn ty_by_ref( | |
12 | ty_val: Ty<'_>, | |
13 | ty_ref: &Ty<'_>, //~ ERROR passing `Ty<'_>` by reference | |
dc9dc135 XL |
14 | ty_ctxt_val: TyCtxt<'_>, |
15 | ty_ctxt_ref: &TyCtxt<'_>, //~ ERROR passing `TyCtxt<'_>` by reference | |
48663c56 XL |
16 | ) { |
17 | } | |
18 | ||
dc9dc135 | 19 | fn ty_multi_ref(ty_multi: &&Ty<'_>, ty_ctxt_multi: &&&&TyCtxt<'_>) {} |
48663c56 | 20 | //~^ ERROR passing `Ty<'_>` by reference |
dc9dc135 | 21 | //~^^ ERROR passing `TyCtxt<'_>` by reference |
48663c56 XL |
22 | |
23 | trait T { | |
24 | fn ty_by_ref_in_trait( | |
25 | ty_val: Ty<'_>, | |
26 | ty_ref: &Ty<'_>, //~ ERROR passing `Ty<'_>` by reference | |
dc9dc135 XL |
27 | ty_ctxt_val: TyCtxt<'_>, |
28 | ty_ctxt_ref: &TyCtxt<'_>, //~ ERROR passing `TyCtxt<'_>` by reference | |
48663c56 XL |
29 | ); |
30 | ||
dc9dc135 | 31 | fn ty_multi_ref_in_trait(ty_multi: &&Ty<'_>, ty_ctxt_multi: &&&&TyCtxt<'_>); |
48663c56 | 32 | //~^ ERROR passing `Ty<'_>` by reference |
dc9dc135 | 33 | //~^^ ERROR passing `TyCtxt<'_>` by reference |
48663c56 XL |
34 | } |
35 | ||
36 | struct Foo; | |
37 | ||
38 | impl T for Foo { | |
39 | fn ty_by_ref_in_trait( | |
40 | ty_val: Ty<'_>, | |
41 | ty_ref: &Ty<'_>, | |
dc9dc135 XL |
42 | ty_ctxt_val: TyCtxt<'_>, |
43 | ty_ctxt_ref: &TyCtxt<'_>, | |
48663c56 XL |
44 | ) { |
45 | } | |
46 | ||
dc9dc135 | 47 | fn ty_multi_ref_in_trait(ty_multi: &&Ty<'_>, ty_ctxt_multi: &&&&TyCtxt<'_>) {} |
48663c56 XL |
48 | } |
49 | ||
50 | impl Foo { | |
51 | fn ty_by_ref_assoc( | |
52 | ty_val: Ty<'_>, | |
53 | ty_ref: &Ty<'_>, //~ ERROR passing `Ty<'_>` by reference | |
dc9dc135 XL |
54 | ty_ctxt_val: TyCtxt<'_>, |
55 | ty_ctxt_ref: &TyCtxt<'_>, //~ ERROR passing `TyCtxt<'_>` by reference | |
48663c56 XL |
56 | ) { |
57 | } | |
58 | ||
dc9dc135 | 59 | fn ty_multi_ref_assoc(ty_multi: &&Ty<'_>, ty_ctxt_multi: &&&&TyCtxt<'_>) {} |
48663c56 | 60 | //~^ ERROR passing `Ty<'_>` by reference |
dc9dc135 | 61 | //~^^ ERROR passing `TyCtxt<'_>` by reference |
48663c56 XL |
62 | } |
63 | ||
64 | fn main() {} |