diff --git a/crates/hir/src/lib.rs b/crates/hir/src/lib.rs index b088b5df1d..9e3dc998bf 100644 --- a/crates/hir/src/lib.rs +++ b/crates/hir/src/lib.rs @@ -1574,7 +1574,6 @@ pub struct BuiltinType { } impl BuiltinType { - // FIXME: I'm not sure if it's the best place to put it pub fn str() -> BuiltinType { BuiltinType { inner: hir_def::builtin_type::BuiltinType::Str } } @@ -2268,9 +2267,8 @@ impl Type { Type::new(db, krate, def, ty) } - // FIXME: No idea where to put it - pub fn make_slice_of(self) -> Type { - Type { krate: self.krate, env: self.env, ty: TyBuilder::slice(self.ty) } + pub fn new_slice(ty: Type) -> Type { + Type { krate: ty.krate, env: ty.env, ty: TyBuilder::slice(ty.ty) } } pub fn is_unit(&self) -> bool { diff --git a/crates/ide_assists/src/utils.rs b/crates/ide_assists/src/utils.rs index 8f0e76f7b8..fd0ff2f5cb 100644 --- a/crates/ide_assists/src/utils.rs +++ b/crates/ide_assists/src/utils.rs @@ -613,7 +613,7 @@ fn handle_as_ref_slice( famous_defs: &FamousDefs, ) -> Option { let type_argument = ty.type_arguments().next()?; - let slice_type = type_argument.make_slice_of(); + let slice_type = hir::Type::new_slice(type_argument); ty.impls_trait(db, famous_defs.core_convert_AsRef()?, &[slice_type]) .then(|| ReferenceConversionType::AsRefSlice)