Skip to content

Commit 90ba09d

Browse files
committed
Add tests
1 parent 747d288 commit 90ba09d

File tree

2 files changed

+99
-0
lines changed

2 files changed

+99
-0
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
// compile-flags: -Z unstable-options
2+
3+
#![feature(rustc_private)]
4+
#![deny(ty_pass_by_reference)]
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
14+
ty_ctxt_val: TyCtxt<'_, '_, '_>,
15+
ty_ctxt_ref: &TyCtxt<'_, '_, '_>, //~ ERROR passing `TyCtxt<'_, '_, '_>` by reference
16+
) {
17+
}
18+
19+
fn ty_multi_ref(ty_multi: &&Ty<'_>, ty_ctxt_multi: &&&&TyCtxt<'_, '_, '_>) {}
20+
//~^ ERROR passing `Ty<'_>` by reference
21+
//~^^ ERROR passing `TyCtxt<'_, '_, '_>` by reference
22+
23+
trait T {
24+
fn ty_by_ref_in_trait(
25+
ty_val: Ty<'_>,
26+
ty_ref: &Ty<'_>, //~ ERROR passing `Ty<'_>` by reference
27+
ty_ctxt_val: TyCtxt<'_, '_, '_>,
28+
ty_ctxt_ref: &TyCtxt<'_, '_, '_>, //~ ERROR passing `TyCtxt<'_, '_, '_>` by reference
29+
);
30+
31+
fn ty_multi_ref_in_trait(ty_multi: &&Ty<'_>, ty_ctxt_multi: &&&&TyCtxt<'_, '_, '_>);
32+
//~^ ERROR passing `Ty<'_>` by reference
33+
//~^^ ERROR passing `TyCtxt<'_, '_, '_>` by reference
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<'_>,
42+
ty_ctxt_val: TyCtxt<'_, '_, '_>,
43+
ty_ctxt_ref: &TyCtxt<'_, '_, '_>,
44+
) {
45+
}
46+
47+
fn ty_multi_ref_in_trait(ty_multi: &&Ty<'_>, ty_ctxt_multi: &&&&TyCtxt<'_, '_, '_>) {}
48+
}
49+
50+
impl Foo {
51+
fn ty_by_ref_assoc(
52+
ty_val: Ty<'_>,
53+
ty_ref: &Ty<'_>, //~ ERROR passing `Ty<'_>` by reference
54+
ty_ctxt_val: TyCtxt<'_, '_, '_>,
55+
ty_ctxt_ref: &TyCtxt<'_, '_, '_>, //~ ERROR passing `TyCtxt<'_, '_, '_>` by reference
56+
) {
57+
}
58+
59+
fn ty_multi_ref_assoc(ty_multi: &&Ty<'_>, ty_ctxt_multi: &&&&TyCtxt<'_, '_, '_>) {}
60+
//~^ ERROR passing `Ty<'_>` by reference
61+
//~^^ ERROR passing `TyCtxt<'_, '_, '_>` by reference
62+
}
63+
64+
fn main() {}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
// compile-flags: -Z unstable-options
2+
3+
#![feature(rustc_private)]
4+
#![deny(usage_of_qualified_ty)]
5+
#![allow(unused)]
6+
7+
extern crate rustc;
8+
9+
use rustc::ty::{self, Ty, TyCtxt};
10+
11+
macro_rules! qualified_macro {
12+
($a:ident) => {
13+
fn ty_in_macro(
14+
ty_q: ty::Ty<'_>,
15+
ty: Ty<'_>,
16+
ty_ctxt_q: ty::TyCtxt<'_, '_, '_>,
17+
ty_ctxt: TyCtxt<'_, '_, '_>,
18+
) {
19+
println!("{}", stringify!($a));
20+
}
21+
};
22+
}
23+
24+
fn ty_qualified(
25+
ty_q: ty::Ty<'_>, //~ ERROR usage of qualified `ty::Ty<'_>`
26+
ty: Ty<'_>,
27+
ty_ctxt_q: ty::TyCtxt<'_, '_, '_>, //~ ERROR usage of qualified `ty::TyCtxt<'_, '_, '_>`
28+
ty_ctxt: TyCtxt<'_, '_, '_>,
29+
) {
30+
}
31+
32+
33+
fn main() {
34+
qualified_macro!(a);
35+
}

0 commit comments

Comments
 (0)