1pub use chalk_ir::{FloatTy, IntTy, UintTy};
4pub use hir_def::builtin_type::{BuiltinFloat, BuiltinInt, BuiltinUint};
5
6pub fn int_ty_to_string(ty: IntTy) -> &'static str {
7 match ty {
8 IntTy::Isize => "isize",
9 IntTy::I8 => "i8",
10 IntTy::I16 => "i16",
11 IntTy::I32 => "i32",
12 IntTy::I64 => "i64",
13 IntTy::I128 => "i128",
14 }
15}
16
17pub fn uint_ty_to_string(ty: UintTy) -> &'static str {
18 match ty {
19 UintTy::Usize => "usize",
20 UintTy::U8 => "u8",
21 UintTy::U16 => "u16",
22 UintTy::U32 => "u32",
23 UintTy::U64 => "u64",
24 UintTy::U128 => "u128",
25 }
26}
27
28pub fn float_ty_to_string(ty: FloatTy) -> &'static str {
29 match ty {
30 FloatTy::F16 => "f16",
31 FloatTy::F32 => "f32",
32 FloatTy::F64 => "f64",
33 FloatTy::F128 => "f128",
34 }
35}
36
37pub fn int_ty_to_string_ns(ty: rustc_type_ir::IntTy) -> &'static str {
38 use rustc_type_ir::IntTy;
39 match ty {
40 IntTy::Isize => "isize",
41 IntTy::I8 => "i8",
42 IntTy::I16 => "i16",
43 IntTy::I32 => "i32",
44 IntTy::I64 => "i64",
45 IntTy::I128 => "i128",
46 }
47}
48
49pub fn uint_ty_to_string_ns(ty: rustc_type_ir::UintTy) -> &'static str {
50 use rustc_type_ir::UintTy;
51 match ty {
52 UintTy::Usize => "usize",
53 UintTy::U8 => "u8",
54 UintTy::U16 => "u16",
55 UintTy::U32 => "u32",
56 UintTy::U64 => "u64",
57 UintTy::U128 => "u128",
58 }
59}
60
61pub fn float_ty_to_string_ns(ty: rustc_type_ir::FloatTy) -> &'static str {
62 use rustc_type_ir::FloatTy;
63 match ty {
64 FloatTy::F16 => "f16",
65 FloatTy::F32 => "f32",
66 FloatTy::F64 => "f64",
67 FloatTy::F128 => "f128",
68 }
69}
70
71pub(super) fn int_ty_from_builtin(t: BuiltinInt) -> IntTy {
72 match t {
73 BuiltinInt::Isize => IntTy::Isize,
74 BuiltinInt::I8 => IntTy::I8,
75 BuiltinInt::I16 => IntTy::I16,
76 BuiltinInt::I32 => IntTy::I32,
77 BuiltinInt::I64 => IntTy::I64,
78 BuiltinInt::I128 => IntTy::I128,
79 }
80}
81
82pub(super) fn uint_ty_from_builtin(t: BuiltinUint) -> UintTy {
83 match t {
84 BuiltinUint::Usize => UintTy::Usize,
85 BuiltinUint::U8 => UintTy::U8,
86 BuiltinUint::U16 => UintTy::U16,
87 BuiltinUint::U32 => UintTy::U32,
88 BuiltinUint::U64 => UintTy::U64,
89 BuiltinUint::U128 => UintTy::U128,
90 }
91}
92
93pub(super) fn float_ty_from_builtin(t: BuiltinFloat) -> FloatTy {
94 match t {
95 BuiltinFloat::F16 => FloatTy::F16,
96 BuiltinFloat::F32 => FloatTy::F32,
97 BuiltinFloat::F64 => FloatTy::F64,
98 BuiltinFloat::F128 => FloatTy::F128,
99 }
100}