mirror of
				https://github.com/rust-lang/rust-analyzer.git
				synced 2025-11-03 21:25:25 +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