]>
Commit | Line | Data |
---|---|---|
532ac7d7 XL |
1 | // compile-flags: -Z unstable-options |
2 | ||
3 | #![feature(rustc_private)] | |
4 | ||
ba9703b0 | 5 | extern crate rustc_middle; |
923072b8 | 6 | extern crate rustc_type_ir; |
532ac7d7 | 7 | |
ba9703b0 | 8 | use rustc_middle::ty::{self, Ty, TyKind}; |
923072b8 | 9 | use rustc_type_ir::{Interner, TyKind as IrTyKind}; |
532ac7d7 | 10 | |
416331ca | 11 | #[deny(rustc::usage_of_ty_tykind)] |
532ac7d7 | 12 | fn main() { |
e74abb32 | 13 | let kind = TyKind::Bool; //~ ERROR usage of `ty::TyKind::<kind>` |
532ac7d7 | 14 | |
e74abb32 | 15 | match kind { |
923072b8 FG |
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>` | |
532ac7d7 | 33 | TyKind::GeneratorWitness(..) => (), //~ ERROR usage of `ty::TyKind::<kind>` |
923072b8 FG |
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>` | |
532ac7d7 XL |
43 | } |
44 | ||
e74abb32 | 45 | if let ty::Int(int_ty) = kind {} |
532ac7d7 | 46 | |
e74abb32 | 47 | if let TyKind::Int(int_ty) = kind {} //~ ERROR usage of `ty::TyKind::<kind>` |
532ac7d7 XL |
48 | |
49 | fn ty_kind(ty_bad: TyKind<'_>, ty_good: Ty<'_>) {} //~ ERROR usage of `ty::TyKind` | |
923072b8 FG |
50 | |
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>` | |
55 | } | |
532ac7d7 | 56 | } |