Skip to content

Commit 4184c6a

Browse files
committed
collapsible_match
1 parent 6573768 commit 4184c6a

File tree

6 files changed

+49
-64
lines changed

6 files changed

+49
-64
lines changed

Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,6 @@ new_ret_no_self = "allow"
169169
## Following lints should be tackled at some point
170170
borrowed_box = "allow"
171171
borrow_deref_ref = "allow"
172-
collapsible_match = "allow"
173172
clone_on_copy = "allow"
174173
derivable_impls = "allow"
175174
derived_hash_with_manual_eq = "allow"

crates/hir-ty/src/infer/closure.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -334,12 +334,10 @@ impl InferenceContext<'_> {
334334
match &self.body[tgt_expr] {
335335
Expr::Path(p) => {
336336
let resolver = resolver_for_expr(self.db.upcast(), self.owner, tgt_expr);
337-
if let Some(r) = resolver.resolve_path_in_value_ns(self.db.upcast(), p) {
338-
if let ResolveValueResult::ValueNs(v, _) = r {
339-
if let ValueNs::LocalBinding(b) = v {
340-
return Some(HirPlace { local: b, projections: vec![] });
341-
}
342-
}
337+
if let Some(ResolveValueResult::ValueNs(ValueNs::LocalBinding(b), _)) =
338+
resolver.resolve_path_in_value_ns(self.db.upcast(), p)
339+
{
340+
return Some(HirPlace { local: b, projections: vec![] });
343341
}
344342
}
345343
Expr::Field { expr, name: _ } => {

crates/hir-ty/src/mir/eval.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1387,10 +1387,7 @@ impl Evaluator<'_> {
13871387
| CastKind::PointerFromExposedAddress => {
13881388
let current_ty = self.operand_ty(operand, locals)?;
13891389
let is_signed = match current_ty.kind(Interner) {
1390-
TyKind::Scalar(s) => match s {
1391-
chalk_ir::Scalar::Int(_) => true,
1392-
_ => false,
1393-
},
1390+
TyKind::Scalar(chalk_ir::Scalar::Int(_)) => true,
13941391
_ => false,
13951392
};
13961393
let current = pad16(self.eval_operand(operand, locals)?.get(self)?, is_signed);

crates/hir-ty/src/mir/lower/as_place.rs

Lines changed: 41 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -160,57 +160,53 @@ impl MirLowerCtx<'_> {
160160
_ => try_rvalue(self),
161161
}
162162
}
163-
Expr::UnaryOp { expr, op } => match op {
164-
hir_def::hir::UnaryOp::Deref => {
165-
let is_builtin = match self.expr_ty_without_adjust(*expr).kind(Interner) {
166-
TyKind::Ref(..) | TyKind::Raw(..) => true,
167-
TyKind::Adt(id, _) => {
168-
if let Some(lang_item) = self.db.lang_attr(id.0.into()) {
169-
lang_item == LangItem::OwnedBox
170-
} else {
171-
false
172-
}
163+
Expr::UnaryOp { expr, op: hir_def::hir::UnaryOp::Deref } => {
164+
let is_builtin = match self.expr_ty_without_adjust(*expr).kind(Interner) {
165+
TyKind::Ref(..) | TyKind::Raw(..) => true,
166+
TyKind::Adt(id, _) => {
167+
if let Some(lang_item) = self.db.lang_attr(id.0.into()) {
168+
lang_item == LangItem::OwnedBox
169+
} else {
170+
false
173171
}
174-
_ => false,
172+
}
173+
_ => false,
174+
};
175+
if !is_builtin {
176+
let Some((p, current)) = self.lower_expr_as_place(current, *expr, true)? else {
177+
return Ok(None);
175178
};
176-
if !is_builtin {
177-
let Some((p, current)) = self.lower_expr_as_place(current, *expr, true)?
178-
else {
179-
return Ok(None);
180-
};
181-
return self.lower_overloaded_deref(
182-
current,
183-
p,
184-
self.expr_ty_after_adjustments(*expr),
185-
self.expr_ty_without_adjust(expr_id),
186-
expr_id.into(),
187-
'b: {
188-
if let Some((f, _)) = self.infer.method_resolution(expr_id) {
189-
if let Some(deref_trait) =
190-
self.resolve_lang_item(LangItem::DerefMut)?.as_trait()
179+
return self.lower_overloaded_deref(
180+
current,
181+
p,
182+
self.expr_ty_after_adjustments(*expr),
183+
self.expr_ty_without_adjust(expr_id),
184+
expr_id.into(),
185+
'b: {
186+
if let Some((f, _)) = self.infer.method_resolution(expr_id) {
187+
if let Some(deref_trait) =
188+
self.resolve_lang_item(LangItem::DerefMut)?.as_trait()
189+
{
190+
if let Some(deref_fn) = self
191+
.db
192+
.trait_data(deref_trait)
193+
.method_by_name(&name![deref_mut])
191194
{
192-
if let Some(deref_fn) = self
193-
.db
194-
.trait_data(deref_trait)
195-
.method_by_name(&name![deref_mut])
196-
{
197-
break 'b deref_fn == f;
198-
}
195+
break 'b deref_fn == f;
199196
}
200197
}
201-
false
202-
},
203-
);
204-
}
205-
let Some((mut r, current)) = self.lower_expr_as_place(current, *expr, true)?
206-
else {
207-
return Ok(None);
208-
};
209-
r = r.project(ProjectionElem::Deref, &mut self.result.projection_store);
210-
Ok(Some((r, current)))
198+
}
199+
false
200+
},
201+
);
211202
}
212-
_ => try_rvalue(self),
213-
},
203+
let Some((mut r, current)) = self.lower_expr_as_place(current, *expr, true)? else {
204+
return Ok(None);
205+
};
206+
r = r.project(ProjectionElem::Deref, &mut self.result.projection_store);
207+
Ok(Some((r, current)))
208+
}
209+
Expr::UnaryOp { .. } => try_rvalue(self),
214210
Expr::Field { expr, .. } => {
215211
let Some((mut r, current)) = self.lower_expr_as_place(current, *expr, true)? else {
216212
return Ok(None);

crates/hir-ty/src/mir/lower/pattern_matching.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -331,10 +331,8 @@ impl MirLowerCtx<'_> {
331331
break 'b (c, x.1);
332332
}
333333
}
334-
if let ResolveValueResult::ValueNs(v, _) = pr {
335-
if let ValueNs::ConstId(c) = v {
336-
break 'b (c, Substitution::empty(Interner));
337-
}
334+
if let ResolveValueResult::ValueNs(ValueNs::ConstId(c), _) = pr {
335+
break 'b (c, Substitution::empty(Interner));
338336
}
339337
not_supported!("path in pattern position that is not const or variant")
340338
};

crates/ide-completion/src/context/analysis.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -796,8 +796,7 @@ fn classify_name_ref(
796796
ast::AssocTypeArg(arg) => {
797797
let trait_ = ast::PathSegment::cast(arg.syntax().parent()?.parent()?)?;
798798
match sema.resolve_path(&trait_.parent_path().top_path())? {
799-
hir::PathResolution::Def(def) => match def {
800-
hir::ModuleDef::Trait(trait_) => {
799+
hir::PathResolution::Def(hir::ModuleDef::Trait(trait_)) => {
801800
let arg_name = arg.name_ref()?;
802801
let arg_name = arg_name.text();
803802
let trait_items = trait_.items_with_supertraits(sema.db);
@@ -810,8 +809,6 @@ fn classify_name_ref(
810809
})?;
811810
sema.source(*assoc_ty)?.value.generic_param_list()
812811
}
813-
_ => None,
814-
},
815812
_ => None,
816813
}
817814
},

0 commit comments

Comments
 (0)