1 // compile-flags: -Z unstable-options
3 #![feature(rustc_private)]
5 extern crate rustc_middle
;
6 extern crate rustc_type_ir
;
8 use rustc_middle
::ty
::{self, Ty, TyKind}
;
9 use rustc_type_ir
::{Interner, TyKind as IrTyKind}
;
11 #[deny(rustc::usage_of_ty_tykind)]
13 let kind
= TyKind
::Bool
; //~ ERROR usage of `ty::TyKind::<kind>`
16 TyKind
::Bool
=> (), //~ ERROR usage of `ty::TyKind::<kind>`
17 TyKind
::Char
=> (), //~ ERROR usage of `ty::TyKind::<kind>`
18 TyKind
::Int(..) => (), //~ ERROR usage of `ty::TyKind::<kind>`
19 TyKind
::Uint(..) => (), //~ ERROR usage of `ty::TyKind::<kind>`
20 TyKind
::Float(..) => (), //~ ERROR usage of `ty::TyKind::<kind>`
21 TyKind
::Adt(..) => (), //~ ERROR usage of `ty::TyKind::<kind>`
22 TyKind
::Foreign(..) => (), //~ ERROR usage of `ty::TyKind::<kind>`
23 TyKind
::Str
=> (), //~ ERROR usage of `ty::TyKind::<kind>`
24 TyKind
::Array(..) => (), //~ ERROR usage of `ty::TyKind::<kind>`
25 TyKind
::Slice(..) => (), //~ ERROR usage of `ty::TyKind::<kind>`
26 TyKind
::RawPtr(..) => (), //~ ERROR usage of `ty::TyKind::<kind>`
27 TyKind
::Ref(..) => (), //~ ERROR usage of `ty::TyKind::<kind>`
28 TyKind
::FnDef(..) => (), //~ ERROR usage of `ty::TyKind::<kind>`
29 TyKind
::FnPtr(..) => (), //~ ERROR usage of `ty::TyKind::<kind>`
30 TyKind
::Dynamic(..) => (), //~ ERROR usage of `ty::TyKind::<kind>`
31 TyKind
::Closure(..) => (), //~ ERROR usage of `ty::TyKind::<kind>`
32 TyKind
::Generator(..) => (), //~ ERROR usage of `ty::TyKind::<kind>`
33 TyKind
::GeneratorWitness(..) => (), //~ ERROR usage of `ty::TyKind::<kind>`
34 TyKind
::Never
=> (), //~ ERROR usage of `ty::TyKind::<kind>`
35 TyKind
::Tuple(..) => (), //~ ERROR usage of `ty::TyKind::<kind>`
36 TyKind
::Projection(..) => (), //~ ERROR usage of `ty::TyKind::<kind>`
37 TyKind
::Opaque(..) => (), //~ ERROR usage of `ty::TyKind::<kind>`
38 TyKind
::Param(..) => (), //~ ERROR usage of `ty::TyKind::<kind>`
39 TyKind
::Bound(..) => (), //~ ERROR usage of `ty::TyKind::<kind>`
40 TyKind
::Placeholder(..) => (), //~ ERROR usage of `ty::TyKind::<kind>`
41 TyKind
::Infer(..) => (), //~ ERROR usage of `ty::TyKind::<kind>`
42 TyKind
::Error(_
) => (), //~ ERROR usage of `ty::TyKind::<kind>`
45 if let ty
::Int(int_ty
) = kind {}
47 if let TyKind
::Int(int_ty
) = kind {}
//~ ERROR usage of `ty::TyKind::<kind>`
49 fn ty_kind(ty_bad
: TyKind
<'_
>, ty_good
: Ty
<'_
>) {}
//~ ERROR usage of `ty::TyKind`
51 fn ir_ty_kind
<I
: Interner
>(bad
: IrTyKind
<I
>) -> IrTyKind
<I
> {
52 //~^ ERROR usage of `ty::TyKind`
53 //~| ERROR usage of `ty::TyKind`
54 IrTyKind
::Bool
//~ ERROR usage of `ty::TyKind::<kind>`