Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-def/src/expr_store/lower.rs')
-rw-r--r--crates/hir-def/src/expr_store/lower.rs63
1 files changed, 20 insertions, 43 deletions
diff --git a/crates/hir-def/src/expr_store/lower.rs b/crates/hir-def/src/expr_store/lower.rs
index abd1382801..3794cb18e9 100644
--- a/crates/hir-def/src/expr_store/lower.rs
+++ b/crates/hir-def/src/expr_store/lower.rs
@@ -33,7 +33,7 @@ use tt::TextRange;
use crate::{
AdtId, BlockId, BlockLoc, DefWithBodyId, FunctionId, GenericDefId, ImplId, MacroId,
- ModuleDefId, ModuleId, TraitAliasId, TraitId, TypeAliasId, UnresolvedMacro,
+ ModuleDefId, ModuleId, TraitId, TypeAliasId, UnresolvedMacro,
builtin_type::BuiltinUint,
db::DefDatabase,
expr_store::{
@@ -252,28 +252,6 @@ pub(crate) fn lower_trait(
(store, source_map, params)
}
-pub(crate) fn lower_trait_alias(
- db: &dyn DefDatabase,
- module: ModuleId,
- trait_syntax: InFile<ast::TraitAlias>,
- trait_id: TraitAliasId,
-) -> (ExpressionStore, ExpressionStoreSourceMap, Arc<GenericParams>) {
- let mut expr_collector = ExprCollector::new(db, module, trait_syntax.file_id);
- let mut collector = generics::GenericParamsCollector::with_self_param(
- &mut expr_collector,
- trait_id.into(),
- trait_syntax.value.type_bound_list(),
- );
- collector.lower(
- &mut expr_collector,
- trait_syntax.value.generic_param_list(),
- trait_syntax.value.where_clause(),
- );
- let params = collector.finish();
- let (store, source_map) = expr_collector.store.finish();
- (store, source_map, params)
-}
-
pub(crate) fn lower_type_alias(
db: &dyn DefDatabase,
module: ModuleId,
@@ -1487,13 +1465,13 @@ impl ExprCollector<'_> {
ast::Expr::UnderscoreExpr(_) => self.alloc_pat_from_expr(Pat::Wild, syntax_ptr),
ast::Expr::ParenExpr(e) => {
// We special-case `(..)` for consistency with patterns.
- if let Some(ast::Expr::RangeExpr(range)) = e.expr() {
- if range.is_range_full() {
- return Some(self.alloc_pat_from_expr(
- Pat::Tuple { args: Box::default(), ellipsis: Some(0) },
- syntax_ptr,
- ));
- }
+ if let Some(ast::Expr::RangeExpr(range)) = e.expr()
+ && range.is_range_full()
+ {
+ return Some(self.alloc_pat_from_expr(
+ Pat::Tuple { args: Box::default(), ellipsis: Some(0) },
+ syntax_ptr,
+ ));
}
return e.expr().and_then(|expr| self.maybe_collect_expr_as_pat(&expr));
}
@@ -2569,19 +2547,18 @@ impl ExprCollector<'_> {
}
}
RibKind::MacroDef(macro_id) => {
- if let Some((parent_ctx, label_macro_id)) = hygiene_info {
- if label_macro_id == **macro_id {
- // A macro is allowed to refer to labels from before its declaration.
- // Therefore, if we got to the rib of its declaration, give up its hygiene
- // and use its parent expansion.
-
- hygiene_id =
- HygieneId::new(parent_ctx.opaque_and_semitransparent(self.db));
- hygiene_info = parent_ctx.outer_expn(self.db).map(|expansion| {
- let expansion = self.db.lookup_intern_macro_call(expansion.into());
- (parent_ctx.parent(self.db), expansion.def)
- });
- }
+ if let Some((parent_ctx, label_macro_id)) = hygiene_info
+ && label_macro_id == **macro_id
+ {
+ // A macro is allowed to refer to labels from before its declaration.
+ // Therefore, if we got to the rib of its declaration, give up its hygiene
+ // and use its parent expansion.
+
+ hygiene_id = HygieneId::new(parent_ctx.opaque_and_semitransparent(self.db));
+ hygiene_info = parent_ctx.outer_expn(self.db).map(|expansion| {
+ let expansion = self.db.lookup_intern_macro_call(expansion.into());
+ (parent_ctx.parent(self.db), expansion.def)
+ });
}
}
_ => {}