Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-def/src/expr_store/body.rs')
| -rw-r--r-- | crates/hir-def/src/expr_store/body.rs | 35 |
1 files changed, 6 insertions, 29 deletions
diff --git a/crates/hir-def/src/expr_store/body.rs b/crates/hir-def/src/expr_store/body.rs index 0295874bd7..fb6d931e0e 100644 --- a/crates/hir-def/src/expr_store/body.rs +++ b/crates/hir-def/src/expr_store/body.rs @@ -3,7 +3,6 @@ use std::ops; use hir_expand::{InFile, Lookup}; -use la_arena::{Idx, RawIdx}; use span::Edition; use syntax::ast; use triomphe::Arc; @@ -11,10 +10,10 @@ use triomphe::Arc; use crate::{ DefWithBodyId, HasModule, db::DefDatabase, - expander::Expander, - expr_store::{ExpressionStore, ExpressionStoreSourceMap, SelfParamPtr, lower, pretty}, + expr_store::{ + ExpressionStore, ExpressionStoreSourceMap, SelfParamPtr, lower::lower_body, pretty, + }, hir::{BindingId, ExprId, PatId}, - item_tree::AttrOwner, src::HasSource, }; @@ -79,30 +78,10 @@ impl Body { let InFile { file_id, value: body } = { match def { DefWithBodyId::FunctionId(f) => { - let data = db.function_data(f); let f = f.lookup(db); let src = f.source(db); - params = src.value.param_list().map(move |param_list| { - let item_tree = f.id.item_tree(db); - let func = &item_tree[f.id.value]; - let krate = f.container.module(db).krate; - ( - param_list, - (0..func.params.len()).map(move |idx| { - item_tree - .attrs( - db, - krate, - AttrOwner::Param( - f.id.value, - Idx::from_raw(RawIdx::from(idx as u32)), - ), - ) - .is_cfg_enabled(krate.cfg_options(db)) - }), - ) - }); - is_async_fn = data.is_async(); + params = src.value.param_list(); + is_async_fn = src.value.async_token().is_some(); src.map(|it| it.body().map(ast::Expr::from)) } DefWithBodyId::ConstId(c) => { @@ -120,13 +99,11 @@ impl Body { let src = s.source(db); src.map(|it| it.expr()) } - DefWithBodyId::InTypeConstId(c) => c.lookup(db).id.map(|_| c.source(db).expr()), } }; let module = def.module(db); - let expander = Expander::new(db, file_id, module); let (body, mut source_map) = - lower::lower_body(db, def, expander, params, body, module.krate, is_async_fn); + lower_body(db, def, file_id, module, params, body, is_async_fn); source_map.store.shrink_to_fit(); (Arc::new(body), Arc::new(source_map)) |