diff options
author | yanchith <[email protected]> | 2019-03-22 09:09:35 +0000 |
---|---|---|
committer | yanchith <[email protected]> | 2019-03-22 09:09:35 +0000 |
commit | 504c8c7c2e371f2adccbc292ad09af2b31e05787 (patch) | |
tree | e8682a3f3a5017932dd31decc979daca7d9a2daa /crates/ra_hir/src/ty/infer.rs | |
parent | 2a6544f906818263e2791bc4cdf4fcbdf7260ab9 (diff) |
Refactor primitive types into more orthogonal representation
Diffstat (limited to 'crates/ra_hir/src/ty/infer.rs')
-rw-r--r-- | crates/ra_hir/src/ty/infer.rs | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/crates/ra_hir/src/ty/infer.rs b/crates/ra_hir/src/ty/infer.rs index bf42befbb..7cf465266 100644 --- a/crates/ra_hir/src/ty/infer.rs +++ b/crates/ra_hir/src/ty/infer.rs | |||
@@ -990,7 +990,12 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> { | |||
990 | match &inner_ty { | 990 | match &inner_ty { |
991 | Ty::Apply(a_ty) => match a_ty.ctor { | 991 | Ty::Apply(a_ty) => match a_ty.ctor { |
992 | TypeCtor::Int(primitive::UncertainIntTy::Unknown) | 992 | TypeCtor::Int(primitive::UncertainIntTy::Unknown) |
993 | | TypeCtor::Int(primitive::UncertainIntTy::Signed(..)) | 993 | | TypeCtor::Int(primitive::UncertainIntTy::Known( |
994 | primitive::IntTy { | ||
995 | signedness: primitive::Signedness::Signed, | ||
996 | .. | ||
997 | }, | ||
998 | )) | ||
994 | | TypeCtor::Float(..) => inner_ty, | 999 | | TypeCtor::Float(..) => inner_ty, |
995 | _ => Ty::Unknown, | 1000 | _ => Ty::Unknown, |
996 | }, | 1001 | }, |
@@ -1064,8 +1069,8 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> { | |||
1064 | Ty::apply_one(TypeCtor::Ref(Mutability::Shared), Ty::simple(TypeCtor::Str)) | 1069 | Ty::apply_one(TypeCtor::Ref(Mutability::Shared), Ty::simple(TypeCtor::Str)) |
1065 | } | 1070 | } |
1066 | Literal::ByteString(..) => { | 1071 | Literal::ByteString(..) => { |
1067 | let byte_type = Ty::simple(TypeCtor::Int(primitive::UncertainIntTy::Unsigned( | 1072 | let byte_type = Ty::simple(TypeCtor::Int(primitive::UncertainIntTy::Known( |
1068 | primitive::UintTy::U8, | 1073 | primitive::IntTy::u8(), |
1069 | ))); | 1074 | ))); |
1070 | let slice_type = Ty::apply_one(TypeCtor::Slice, byte_type); | 1075 | let slice_type = Ty::apply_one(TypeCtor::Slice, byte_type); |
1071 | Ty::apply_one(TypeCtor::Ref(Mutability::Shared), slice_type) | 1076 | Ty::apply_one(TypeCtor::Ref(Mutability::Shared), slice_type) |
@@ -1208,10 +1213,10 @@ impl InferTy { | |||
1208 | match self { | 1213 | match self { |
1209 | InferTy::TypeVar(..) => Ty::Unknown, | 1214 | InferTy::TypeVar(..) => Ty::Unknown, |
1210 | InferTy::IntVar(..) => { | 1215 | InferTy::IntVar(..) => { |
1211 | Ty::simple(TypeCtor::Int(primitive::UncertainIntTy::Signed(primitive::IntTy::I32))) | 1216 | Ty::simple(TypeCtor::Int(primitive::UncertainIntTy::Known(primitive::IntTy::i32()))) |
1212 | } | 1217 | } |
1213 | InferTy::FloatVar(..) => Ty::simple(TypeCtor::Float( | 1218 | InferTy::FloatVar(..) => Ty::simple(TypeCtor::Float( |
1214 | primitive::UncertainFloatTy::Known(primitive::FloatTy::F64), | 1219 | primitive::UncertainFloatTy::Known(primitive::FloatTy::f64()), |
1215 | )), | 1220 | )), |
1216 | } | 1221 | } |
1217 | } | 1222 | } |