From f5165af9a7cdf9e43db0a95e717a47fa2bdf6c25 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Wed, 20 Mar 2019 22:33:26 +0300 Subject: make Name::new private --- crates/ra_hir/src/ty/primitive.rs | 66 ++++++++++++++++++++++++++++++++------- 1 file changed, 54 insertions(+), 12 deletions(-) (limited to 'crates/ra_hir/src/ty/primitive.rs') diff --git a/crates/ra_hir/src/ty/primitive.rs b/crates/ra_hir/src/ty/primitive.rs index 30aeac48e..421f7e980 100644 --- a/crates/ra_hir/src/ty/primitive.rs +++ b/crates/ra_hir/src/ty/primitive.rs @@ -10,10 +10,20 @@ pub enum UncertainIntTy { } impl UncertainIntTy { - pub fn from_name(name: &Name) -> Option { - if let Some(ty) = IntTy::from_name(name) { + pub(crate) fn from_type_name(name: &Name) -> Option { + if let Some(ty) = IntTy::from_type_name(name) { Some(UncertainIntTy::Signed(ty)) - } else if let Some(ty) = UintTy::from_name(name) { + } else if let Some(ty) = UintTy::from_type_name(name) { + Some(UncertainIntTy::Unsigned(ty)) + } else { + None + } + } + + pub(crate) fn from_suffix(suffix: &str) -> Option { + if let Some(ty) = IntTy::from_suffix(suffix) { + Some(UncertainIntTy::Signed(ty)) + } else if let Some(ty) = UintTy::from_suffix(suffix) { Some(UncertainIntTy::Unsigned(ty)) } else { None @@ -38,12 +48,12 @@ pub enum UncertainFloatTy { } impl UncertainFloatTy { - pub fn from_name(name: &Name) -> Option { - if let Some(ty) = FloatTy::from_name(name) { - Some(UncertainFloatTy::Known(ty)) - } else { - None - } + pub(crate) fn from_type_name(name: &Name) -> Option { + FloatTy::from_type_name(name).map(UncertainFloatTy::Known) + } + + pub(crate) fn from_suffix(suffix: &str) -> Option { + FloatTy::from_suffix(suffix).map(UncertainFloatTy::Known) } } @@ -87,7 +97,7 @@ impl fmt::Display for IntTy { } impl IntTy { - pub fn from_name(name: &Name) -> Option { + fn from_type_name(name: &Name) -> Option { match name.as_known_name()? { KnownName::Isize => Some(IntTy::Isize), KnownName::I8 => Some(IntTy::I8), @@ -98,6 +108,18 @@ impl IntTy { _ => None, } } + + fn from_suffix(suffix: &str) -> Option { + match suffix { + "isize" => Some(IntTy::Isize), + "i8" => Some(IntTy::I8), + "i16" => Some(IntTy::I16), + "i32" => Some(IntTy::I32), + "i64" => Some(IntTy::I64), + "i128" => Some(IntTy::I128), + _ => None, + } + } } #[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Copy)] @@ -125,7 +147,7 @@ impl fmt::Display for UintTy { } impl UintTy { - pub fn from_name(name: &Name) -> Option { + fn from_type_name(name: &Name) -> Option { match name.as_known_name()? { KnownName::Usize => Some(UintTy::Usize), KnownName::U8 => Some(UintTy::U8), @@ -136,6 +158,18 @@ impl UintTy { _ => None, } } + + fn from_suffix(suffix: &str) -> Option { + match suffix { + "usize" => Some(UintTy::Usize), + "u8" => Some(UintTy::U8), + "u16" => Some(UintTy::U16), + "u32" => Some(UintTy::U32), + "u64" => Some(UintTy::U64), + "u128" => Some(UintTy::U128), + _ => None, + } + } } impl fmt::Debug for UintTy { @@ -170,11 +204,19 @@ impl FloatTy { } } - pub fn from_name(name: &Name) -> Option { + fn from_type_name(name: &Name) -> Option { match name.as_known_name()? { KnownName::F32 => Some(FloatTy::F32), KnownName::F64 => Some(FloatTy::F64), _ => None, } } + + fn from_suffix(suffix: &str) -> Option { + match suffix { + "f32" => Some(FloatTy::F32), + "f64" => Some(FloatTy::F64), + _ => None, + } + } } -- cgit v1.2.3