@@ -487,9 +487,9 @@ impl SourceAnalyzer {
487
487
488
488
let mut prefer_value_ns = false ;
489
489
let resolved = ( || {
490
+ let infer = self . infer . as_deref ( ) ?;
490
491
if let Some ( path_expr) = parent ( ) . and_then ( ast:: PathExpr :: cast) {
491
492
let expr_id = self . expr_id ( db, & path_expr. into ( ) ) ?;
492
- let infer = self . infer . as_ref ( ) ?;
493
493
if let Some ( assoc) = infer. assoc_resolutions_for_expr ( expr_id) {
494
494
let assoc = match assoc {
495
495
AssocItemId :: FunctionId ( f_in_trait) => {
@@ -520,18 +520,18 @@ impl SourceAnalyzer {
520
520
prefer_value_ns = true ;
521
521
} else if let Some ( path_pat) = parent ( ) . and_then ( ast:: PathPat :: cast) {
522
522
let pat_id = self . pat_id ( & path_pat. into ( ) ) ?;
523
- if let Some ( assoc) = self . infer . as_ref ( ) ? . assoc_resolutions_for_pat ( pat_id) {
523
+ if let Some ( assoc) = infer. assoc_resolutions_for_pat ( pat_id) {
524
524
return Some ( PathResolution :: Def ( AssocItem :: from ( assoc) . into ( ) ) ) ;
525
525
}
526
526
if let Some ( VariantId :: EnumVariantId ( variant) ) =
527
- self . infer . as_ref ( ) ? . variant_resolution_for_pat ( pat_id)
527
+ infer. variant_resolution_for_pat ( pat_id)
528
528
{
529
529
return Some ( PathResolution :: Def ( ModuleDef :: Variant ( variant. into ( ) ) ) ) ;
530
530
}
531
531
} else if let Some ( rec_lit) = parent ( ) . and_then ( ast:: RecordExpr :: cast) {
532
532
let expr_id = self . expr_id ( db, & rec_lit. into ( ) ) ?;
533
533
if let Some ( VariantId :: EnumVariantId ( variant) ) =
534
- self . infer . as_ref ( ) ? . variant_resolution_for_expr ( expr_id)
534
+ infer. variant_resolution_for_expr ( expr_id)
535
535
{
536
536
return Some ( PathResolution :: Def ( ModuleDef :: Variant ( variant. into ( ) ) ) ) ;
537
537
}
@@ -541,8 +541,7 @@ impl SourceAnalyzer {
541
541
|| parent ( ) . and_then ( ast:: TupleStructPat :: cast) . map ( ast:: Pat :: from) ;
542
542
if let Some ( pat) = record_pat. or_else ( tuple_struct_pat) {
543
543
let pat_id = self . pat_id ( & pat) ?;
544
- let variant_res_for_pat =
545
- self . infer . as_ref ( ) ?. variant_resolution_for_pat ( pat_id) ;
544
+ let variant_res_for_pat = infer. variant_resolution_for_pat ( pat_id) ;
546
545
if let Some ( VariantId :: EnumVariantId ( variant) ) = variant_res_for_pat {
547
546
return Some ( PathResolution :: Def ( ModuleDef :: Variant ( variant. into ( ) ) ) ) ;
548
547
}
0 commit comments