Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-def/src/item_tree/lower.rs')
-rw-r--r--crates/hir-def/src/item_tree/lower.rs39
1 files changed, 12 insertions, 27 deletions
diff --git a/crates/hir-def/src/item_tree/lower.rs b/crates/hir-def/src/item_tree/lower.rs
index 5ab61c8939..454e063995 100644
--- a/crates/hir-def/src/item_tree/lower.rs
+++ b/crates/hir-def/src/item_tree/lower.rs
@@ -23,7 +23,7 @@ use crate::{
BigModItem, Const, Enum, ExternBlock, ExternCrate, FieldsShape, Function, Impl,
ImportAlias, Interned, ItemTree, ItemTreeAstId, Macro2, MacroCall, MacroRules, Mod,
ModItemId, ModKind, ModPath, RawAttrs, RawVisibility, RawVisibilityId, SmallModItem,
- Static, Struct, StructKind, Trait, TraitAlias, TypeAlias, Union, Use, UseTree, UseTreeKind,
+ Static, Struct, StructKind, Trait, TypeAlias, Union, Use, UseTree, UseTreeKind,
VisibilityExplicitness,
},
};
@@ -83,12 +83,12 @@ impl<'a> Ctx<'a> {
.flat_map(|item| self.lower_mod_item(&item))
.collect();
- if let Some(ast::Expr::MacroExpr(tail_macro)) = stmts.expr() {
- if let Some(call) = tail_macro.macro_call() {
- cov_mark::hit!(macro_stmt_with_trailing_macro_expr);
- if let Some(mod_item) = self.lower_mod_item(&call.into()) {
- self.top_level.push(mod_item);
- }
+ if let Some(ast::Expr::MacroExpr(tail_macro)) = stmts.expr()
+ && let Some(call) = tail_macro.macro_call()
+ {
+ cov_mark::hit!(macro_stmt_with_trailing_macro_expr);
+ if let Some(mod_item) = self.lower_mod_item(&call.into()) {
+ self.top_level.push(mod_item);
}
}
@@ -112,12 +112,11 @@ impl<'a> Ctx<'a> {
_ => None,
})
.collect();
- if let Some(ast::Expr::MacroExpr(expr)) = block.tail_expr() {
- if let Some(call) = expr.macro_call() {
- if let Some(mod_item) = self.lower_mod_item(&call.into()) {
- self.top_level.push(mod_item);
- }
- }
+ if let Some(ast::Expr::MacroExpr(expr)) = block.tail_expr()
+ && let Some(call) = expr.macro_call()
+ && let Some(mod_item) = self.lower_mod_item(&call.into())
+ {
+ self.top_level.push(mod_item);
}
self.tree.vis.arena = self.visibilities.into_iter().collect();
self.tree.top_level = self.top_level.into_boxed_slice();
@@ -135,7 +134,6 @@ impl<'a> Ctx<'a> {
ast::Item::Const(ast) => self.lower_const(ast).into(),
ast::Item::Module(ast) => self.lower_module(ast)?.into(),
ast::Item::Trait(ast) => self.lower_trait(ast)?.into(),
- ast::Item::TraitAlias(ast) => self.lower_trait_alias(ast)?.into(),
ast::Item::Impl(ast) => self.lower_impl(ast).into(),
ast::Item::Use(ast) => self.lower_use(ast)?.into(),
ast::Item::ExternCrate(ast) => self.lower_extern_crate(ast)?.into(),
@@ -268,19 +266,6 @@ impl<'a> Ctx<'a> {
Some(ast_id)
}
- fn lower_trait_alias(
- &mut self,
- trait_alias_def: &ast::TraitAlias,
- ) -> Option<ItemTreeAstId<TraitAlias>> {
- let name = trait_alias_def.name()?.as_name();
- let visibility = self.lower_visibility(trait_alias_def);
- let ast_id = self.source_ast_id_map.ast_id(trait_alias_def);
-
- let alias = TraitAlias { name, visibility };
- self.tree.small_data.insert(ast_id.upcast(), SmallModItem::TraitAlias(alias));
- Some(ast_id)
- }
-
fn lower_impl(&mut self, impl_def: &ast::Impl) -> ItemTreeAstId<Impl> {
let ast_id = self.source_ast_id_map.ast_id(impl_def);
// Note that trait impls don't get implicit `Self` unlike traits, because here they are a