diff options
author | Lukas Wirth <[email protected]> | 2021-02-28 09:58:34 +0000 |
---|---|---|
committer | Lukas Wirth <[email protected]> | 2021-02-28 10:06:37 +0000 |
commit | 7c2dd85a32e320fd412a720ea5b847c66bf246ae (patch) | |
tree | fc5fb1d9ae0ae59f4d7eafe68720005d095bd360 /crates/hir_ty/src/traits/chalk/mapping.rs | |
parent | 5183c9f08345c664237ae138e86f96ff46714f15 (diff) |
Use chalk_ir::Scalar directly
Diffstat (limited to 'crates/hir_ty/src/traits/chalk/mapping.rs')
-rw-r--r-- | crates/hir_ty/src/traits/chalk/mapping.rs | 64 |
1 files changed, 4 insertions, 60 deletions
diff --git a/crates/hir_ty/src/traits/chalk/mapping.rs b/crates/hir_ty/src/traits/chalk/mapping.rs index 0e9fc3265..5a3cb7906 100644 --- a/crates/hir_ty/src/traits/chalk/mapping.rs +++ b/crates/hir_ty/src/traits/chalk/mapping.rs | |||
@@ -14,7 +14,7 @@ use hir_def::{type_ref::Mutability, AssocContainerId, GenericDefId, Lookup, Type | |||
14 | 14 | ||
15 | use crate::{ | 15 | use crate::{ |
16 | db::HirDatabase, | 16 | db::HirDatabase, |
17 | primitive::{FloatTy, IntTy, UintTy}, | 17 | primitive::UintTy, |
18 | traits::{Canonical, Obligation}, | 18 | traits::{Canonical, Obligation}, |
19 | ApplicationTy, CallableDefId, GenericPredicate, InEnvironment, OpaqueTy, OpaqueTyId, | 19 | ApplicationTy, CallableDefId, GenericPredicate, InEnvironment, OpaqueTy, OpaqueTyId, |
20 | ProjectionPredicate, ProjectionTy, Scalar, Substs, TraitEnvironment, TraitRef, Ty, TyKind, | 20 | ProjectionPredicate, ProjectionTy, Scalar, Substs, TraitEnvironment, TraitRef, Ty, TyKind, |
@@ -64,31 +64,7 @@ impl ToChalk for Ty { | |||
64 | chalk_ir::TyKind::Foreign(foreign_type_id).intern(&Interner) | 64 | chalk_ir::TyKind::Foreign(foreign_type_id).intern(&Interner) |
65 | } | 65 | } |
66 | 66 | ||
67 | TypeCtor::Scalar(scalar) => chalk_ir::TyKind::Scalar(match scalar { | 67 | TypeCtor::Scalar(scalar) => chalk_ir::TyKind::Scalar(scalar).intern(&Interner), |
68 | Scalar::Bool => chalk_ir::Scalar::Bool, | ||
69 | Scalar::Char => chalk_ir::Scalar::Char, | ||
70 | Scalar::Int(it) => chalk_ir::Scalar::Int(match it { | ||
71 | IntTy::Isize => chalk_ir::IntTy::Isize, | ||
72 | IntTy::I8 => chalk_ir::IntTy::I8, | ||
73 | IntTy::I16 => chalk_ir::IntTy::I16, | ||
74 | IntTy::I32 => chalk_ir::IntTy::I32, | ||
75 | IntTy::I64 => chalk_ir::IntTy::I64, | ||
76 | IntTy::I128 => chalk_ir::IntTy::I128, | ||
77 | }), | ||
78 | Scalar::Uint(it) => chalk_ir::Scalar::Uint(match it { | ||
79 | UintTy::Usize => chalk_ir::UintTy::Usize, | ||
80 | UintTy::U8 => chalk_ir::UintTy::U8, | ||
81 | UintTy::U16 => chalk_ir::UintTy::U16, | ||
82 | UintTy::U32 => chalk_ir::UintTy::U32, | ||
83 | UintTy::U64 => chalk_ir::UintTy::U64, | ||
84 | UintTy::U128 => chalk_ir::UintTy::U128, | ||
85 | }), | ||
86 | Scalar::Float(it) => chalk_ir::Scalar::Float(match it { | ||
87 | FloatTy::F32 => chalk_ir::FloatTy::F32, | ||
88 | FloatTy::F64 => chalk_ir::FloatTy::F64, | ||
89 | }), | ||
90 | }) | ||
91 | .intern(&Interner), | ||
92 | 68 | ||
93 | TypeCtor::Tuple { cardinality } => { | 69 | TypeCtor::Tuple { cardinality } => { |
94 | let substitution = apply_ty.parameters.to_chalk(db); | 70 | let substitution = apply_ty.parameters.to_chalk(db); |
@@ -232,38 +208,7 @@ impl ToChalk for Ty { | |||
232 | apply_ty_from_chalk(db, TypeCtor::OpaqueType(from_chalk(db, opaque_type_id)), subst) | 208 | apply_ty_from_chalk(db, TypeCtor::OpaqueType(from_chalk(db, opaque_type_id)), subst) |
233 | } | 209 | } |
234 | 210 | ||
235 | chalk_ir::TyKind::Scalar(chalk_ir::Scalar::Bool) => { | 211 | chalk_ir::TyKind::Scalar(scalar) => Ty::simple(TypeCtor::Scalar(scalar)), |
236 | Ty::simple(TypeCtor::Scalar(Scalar::Bool)) | ||
237 | } | ||
238 | chalk_ir::TyKind::Scalar(chalk_ir::Scalar::Char) => { | ||
239 | Ty::simple(TypeCtor::Scalar(Scalar::Char)) | ||
240 | } | ||
241 | chalk_ir::TyKind::Scalar(chalk_ir::Scalar::Int(int_ty)) => { | ||
242 | Ty::simple(TypeCtor::Scalar(Scalar::Int(match int_ty { | ||
243 | chalk_ir::IntTy::Isize => IntTy::Isize, | ||
244 | chalk_ir::IntTy::I8 => IntTy::I8, | ||
245 | chalk_ir::IntTy::I16 => IntTy::I16, | ||
246 | chalk_ir::IntTy::I32 => IntTy::I32, | ||
247 | chalk_ir::IntTy::I64 => IntTy::I64, | ||
248 | chalk_ir::IntTy::I128 => IntTy::I128, | ||
249 | }))) | ||
250 | } | ||
251 | chalk_ir::TyKind::Scalar(chalk_ir::Scalar::Uint(int_ty)) => { | ||
252 | Ty::simple(TypeCtor::Scalar(Scalar::Uint(match int_ty { | ||
253 | chalk_ir::UintTy::Usize => UintTy::Usize, | ||
254 | chalk_ir::UintTy::U8 => UintTy::U8, | ||
255 | chalk_ir::UintTy::U16 => UintTy::U16, | ||
256 | chalk_ir::UintTy::U32 => UintTy::U32, | ||
257 | chalk_ir::UintTy::U64 => UintTy::U64, | ||
258 | chalk_ir::UintTy::U128 => UintTy::U128, | ||
259 | }))) | ||
260 | } | ||
261 | chalk_ir::TyKind::Scalar(chalk_ir::Scalar::Float(float_ty)) => { | ||
262 | Ty::simple(TypeCtor::Scalar(Scalar::Float(match float_ty { | ||
263 | chalk_ir::FloatTy::F32 => FloatTy::F32, | ||
264 | chalk_ir::FloatTy::F64 => FloatTy::F64, | ||
265 | }))) | ||
266 | } | ||
267 | chalk_ir::TyKind::Tuple(cardinality, subst) => { | 212 | chalk_ir::TyKind::Tuple(cardinality, subst) => { |
268 | apply_ty_from_chalk(db, TypeCtor::Tuple { cardinality: cardinality as u16 }, subst) | 213 | apply_ty_from_chalk(db, TypeCtor::Tuple { cardinality: cardinality as u16 }, subst) |
269 | } | 214 | } |
@@ -321,8 +266,7 @@ fn ref_to_chalk( | |||
321 | /// fake constant here, because Chalks built-in logic may expect it to be there. | 266 | /// fake constant here, because Chalks built-in logic may expect it to be there. |
322 | fn array_to_chalk(db: &dyn HirDatabase, subst: Substs) -> chalk_ir::Ty<Interner> { | 267 | fn array_to_chalk(db: &dyn HirDatabase, subst: Substs) -> chalk_ir::Ty<Interner> { |
323 | let arg = subst[0].clone().to_chalk(db); | 268 | let arg = subst[0].clone().to_chalk(db); |
324 | let usize_ty = | 269 | let usize_ty = chalk_ir::TyKind::Scalar(Scalar::Uint(UintTy::Usize)).intern(&Interner); |
325 | chalk_ir::TyKind::Scalar(chalk_ir::Scalar::Uint(chalk_ir::UintTy::Usize)).intern(&Interner); | ||
326 | let const_ = chalk_ir::ConstData { | 270 | let const_ = chalk_ir::ConstData { |
327 | ty: usize_ty, | 271 | ty: usize_ty, |
328 | value: chalk_ir::ConstValue::Concrete(chalk_ir::ConcreteConst { interned: () }), | 272 | value: chalk_ir::ConstValue::Concrete(chalk_ir::ConcreteConst { interned: () }), |