mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-11-13 09:11:51 +00:00
call infer_pats from infer::expr with context
This commit is contained in:
parent
7befcb32e4
commit
dd461203a6
1 changed files with 4 additions and 5 deletions
|
|
@ -334,7 +334,7 @@ impl InferenceContext<'_> {
|
||||||
ExprIsRead::No
|
ExprIsRead::No
|
||||||
};
|
};
|
||||||
let input_ty = self.infer_expr(expr, &Expectation::none(), child_is_read);
|
let input_ty = self.infer_expr(expr, &Expectation::none(), child_is_read);
|
||||||
self.infer_top_pat(pat, &input_ty);
|
self.infer_top_pat(pat, &input_ty, None);
|
||||||
self.result.standard_types.bool_.clone()
|
self.result.standard_types.bool_.clone()
|
||||||
}
|
}
|
||||||
Expr::Block { statements, tail, label, id } => {
|
Expr::Block { statements, tail, label, id } => {
|
||||||
|
|
@ -461,7 +461,7 @@ impl InferenceContext<'_> {
|
||||||
|
|
||||||
// Now go through the argument patterns
|
// Now go through the argument patterns
|
||||||
for (arg_pat, arg_ty) in args.iter().zip(&sig_tys) {
|
for (arg_pat, arg_ty) in args.iter().zip(&sig_tys) {
|
||||||
self.infer_top_pat(*arg_pat, arg_ty);
|
self.infer_top_pat(*arg_pat, arg_ty, None);
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME: lift these out into a struct
|
// FIXME: lift these out into a struct
|
||||||
|
|
@ -582,7 +582,7 @@ impl InferenceContext<'_> {
|
||||||
let mut all_arms_diverge = Diverges::Always;
|
let mut all_arms_diverge = Diverges::Always;
|
||||||
for arm in arms.iter() {
|
for arm in arms.iter() {
|
||||||
let input_ty = self.resolve_ty_shallow(&input_ty);
|
let input_ty = self.resolve_ty_shallow(&input_ty);
|
||||||
self.infer_top_pat(arm.pat, &input_ty);
|
self.infer_top_pat(arm.pat, &input_ty, None);
|
||||||
}
|
}
|
||||||
|
|
||||||
let expected = expected.adjust_for_branches(&mut self.table);
|
let expected = expected.adjust_for_branches(&mut self.table);
|
||||||
|
|
@ -927,7 +927,7 @@ impl InferenceContext<'_> {
|
||||||
let resolver_guard =
|
let resolver_guard =
|
||||||
self.resolver.update_to_inner_scope(self.db.upcast(), self.owner, tgt_expr);
|
self.resolver.update_to_inner_scope(self.db.upcast(), self.owner, tgt_expr);
|
||||||
self.inside_assignment = true;
|
self.inside_assignment = true;
|
||||||
self.infer_top_pat(target, &rhs_ty);
|
self.infer_top_pat(target, &rhs_ty, None);
|
||||||
self.inside_assignment = false;
|
self.inside_assignment = false;
|
||||||
self.resolver.reset_to_guard(resolver_guard);
|
self.resolver.reset_to_guard(resolver_guard);
|
||||||
}
|
}
|
||||||
|
|
@ -1632,7 +1632,6 @@ impl InferenceContext<'_> {
|
||||||
decl_ty
|
decl_ty
|
||||||
};
|
};
|
||||||
|
|
||||||
this.infer_top_pat(*pat, &ty);
|
|
||||||
let decl = DeclContext {
|
let decl = DeclContext {
|
||||||
has_else: else_branch.is_some(),
|
has_else: else_branch.is_some(),
|
||||||
origin: DeclOrigin::LocalDecl,
|
origin: DeclOrigin::LocalDecl,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue