diff options
Diffstat (limited to 'crates/hir/src/code_model.rs')
-rw-r--r-- | crates/hir/src/code_model.rs | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/crates/hir/src/code_model.rs b/crates/hir/src/code_model.rs index e9bb4f541..35b532602 100644 --- a/crates/hir/src/code_model.rs +++ b/crates/hir/src/code_model.rs | |||
@@ -6,7 +6,6 @@ use base_db::{CrateDisplayName, CrateId, Edition, FileId}; | |||
6 | use either::Either; | 6 | use either::Either; |
7 | use hir_def::{ | 7 | use hir_def::{ |
8 | adt::{ReprKind, StructKind, VariantData}, | 8 | adt::{ReprKind, StructKind, VariantData}, |
9 | builtin_type::BuiltinType, | ||
10 | expr::{BindingAnnotation, LabelId, Pat, PatId}, | 9 | expr::{BindingAnnotation, LabelId, Pat, PatId}, |
11 | import_map, | 10 | import_map, |
12 | item_tree::ItemTreeNode, | 11 | item_tree::ItemTreeNode, |
@@ -245,7 +244,7 @@ impl ModuleDef { | |||
245 | ModuleDef::Const(it) => it.name(db), | 244 | ModuleDef::Const(it) => it.name(db), |
246 | ModuleDef::Static(it) => it.name(db), | 245 | ModuleDef::Static(it) => it.name(db), |
247 | 246 | ||
248 | ModuleDef::BuiltinType(it) => Some(it.as_name()), | 247 | ModuleDef::BuiltinType(it) => Some(it.name()), |
249 | } | 248 | } |
250 | } | 249 | } |
251 | 250 | ||
@@ -995,6 +994,23 @@ impl HasVisibility for TypeAlias { | |||
995 | } | 994 | } |
996 | 995 | ||
997 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] | 996 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] |
997 | pub struct BuiltinType { | ||
998 | pub(crate) inner: hir_def::builtin_type::BuiltinType, | ||
999 | } | ||
1000 | |||
1001 | impl BuiltinType { | ||
1002 | pub fn ty(self, db: &dyn HirDatabase, module: Module) -> Type { | ||
1003 | let resolver = module.id.resolver(db.upcast()); | ||
1004 | Type::new_with_resolver(db, &resolver, Ty::builtin(self.inner)) | ||
1005 | .expect("crate not present in resolver") | ||
1006 | } | ||
1007 | |||
1008 | pub fn name(self) -> Name { | ||
1009 | self.inner.as_name() | ||
1010 | } | ||
1011 | } | ||
1012 | |||
1013 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] | ||
998 | pub struct MacroDef { | 1014 | pub struct MacroDef { |
999 | pub(crate) id: MacroDefId, | 1015 | pub(crate) id: MacroDefId, |
1000 | } | 1016 | } |