diff --git a/crates/hir-def/src/body/lower.rs b/crates/hir-def/src/body/lower.rs index 8cef31ed15..c3f2611227 100644 --- a/crates/hir-def/src/body/lower.rs +++ b/crates/hir-def/src/body/lower.rs @@ -5,7 +5,7 @@ use std::{mem, sync::Arc}; use either::Either; use hir_expand::{ - ast_id_map::{AstIdMap, FileAstId}, + ast_id_map::AstIdMap, hygiene::Hygiene, name::{name, AsName, Name}, AstId, ExpandError, HirFileId, InFile, @@ -62,22 +62,14 @@ impl<'a> LowerCtx<'a> { &self.hygiene } - pub(crate) fn file_id(&self) -> HirFileId { - self.ast_id_map.as_ref().unwrap().0 - } - pub(crate) fn lower_path(&self, ast: ast::Path) -> Option { Path::from_src(ast, self) } - pub(crate) fn ast_id( - &self, - db: &dyn DefDatabase, - item: &N, - ) -> Option> { - let (file_id, ast_id_map) = self.ast_id_map.as_ref()?; - let ast_id_map = ast_id_map.get_or_init(|| db.ast_id_map(*file_id)); - Some(ast_id_map.ast_id(item)) + pub(crate) fn ast_id(&self, db: &dyn DefDatabase, item: &N) -> Option> { + let &(file_id, ref ast_id_map) = self.ast_id_map.as_ref()?; + let ast_id_map = ast_id_map.get_or_init(|| db.ast_id_map(file_id)); + Some(InFile::new(file_id, ast_id_map.ast_id(item))) } } diff --git a/crates/hir-def/src/type_ref.rs b/crates/hir-def/src/type_ref.rs index dd990b0c78..59f0a8458a 100644 --- a/crates/hir-def/src/type_ref.rs +++ b/crates/hir-def/src/type_ref.rs @@ -5,7 +5,7 @@ use std::fmt::Write; use hir_expand::{ name::{AsName, Name}, - AstId, InFile, + AstId, }; use syntax::ast::{self, HasName}; @@ -236,10 +236,7 @@ impl TypeRef { TypeRef::DynTrait(type_bounds_from_ast(ctx, inner.type_bound_list())) } ast::Type::MacroType(mt) => match mt.macro_call() { - Some(mc) => ctx - .ast_id(ctx.db, &mc) - .map(|mc| TypeRef::Macro(InFile::new(ctx.file_id(), mc))) - .unwrap_or(TypeRef::Error), + Some(mc) => ctx.ast_id(ctx.db, &mc).map(TypeRef::Macro).unwrap_or(TypeRef::Error), None => TypeRef::Error, }, }