@@ -931,6 +931,15 @@ pub fn iterate_method_candidates_dyn(
931931 mode : LookupMode ,
932932 callback : & mut dyn FnMut ( ReceiverAdjustments , AssocItemId , bool ) -> ControlFlow < ( ) > ,
933933) -> ControlFlow < ( ) > {
934+ let _p = tracing:: span!(
935+ tracing:: Level :: INFO ,
936+ "iterate_method_candidates_dyn" ,
937+ ?mode,
938+ ?name,
939+ traits_in_scope_len = traits_in_scope. len( )
940+ )
941+ . entered ( ) ;
942+
934943 match mode {
935944 LookupMode :: MethodCall => {
936945 // For method calls, rust first does any number of autoderef, and
@@ -984,6 +993,7 @@ pub fn iterate_method_candidates_dyn(
984993 }
985994}
986995
996+ #[ tracing:: instrument( skip_all, fields( name = ?name) ) ]
987997fn iterate_method_candidates_with_autoref (
988998 receiver_ty : & Canonical < Ty > ,
989999 first_adjustment : ReceiverAdjustments ,
@@ -1041,6 +1051,7 @@ fn iterate_method_candidates_with_autoref(
10411051 )
10421052}
10431053
1054+ #[ tracing:: instrument( skip_all, fields( name = ?name) ) ]
10441055fn iterate_method_candidates_by_receiver (
10451056 receiver_ty : & Canonical < Ty > ,
10461057 receiver_adjustments : ReceiverAdjustments ,
@@ -1088,6 +1099,7 @@ fn iterate_method_candidates_by_receiver(
10881099 ControlFlow :: Continue ( ( ) )
10891100}
10901101
1102+ #[ tracing:: instrument( skip_all, fields( name = ?name) ) ]
10911103fn iterate_method_candidates_for_self_ty (
10921104 self_ty : & Canonical < Ty > ,
10931105 db : & dyn HirDatabase ,
@@ -1119,6 +1131,7 @@ fn iterate_method_candidates_for_self_ty(
11191131 )
11201132}
11211133
1134+ #[ tracing:: instrument( skip_all, fields( name = ?name, visible_from_module, receiver_ty) ) ]
11221135fn iterate_trait_method_candidates (
11231136 self_ty : & Ty ,
11241137 table : & mut InferenceTable < ' _ > ,
@@ -1175,6 +1188,7 @@ fn iterate_trait_method_candidates(
11751188 ControlFlow :: Continue ( ( ) )
11761189}
11771190
1191+ #[ tracing:: instrument( skip_all, fields( name = ?name, visible_from_module, receiver_ty) ) ]
11781192fn iterate_inherent_methods (
11791193 self_ty : & Ty ,
11801194 table : & mut InferenceTable < ' _ > ,
@@ -1267,6 +1281,7 @@ fn iterate_inherent_methods(
12671281 }
12681282 return ControlFlow :: Continue ( ( ) ) ;
12691283
1284+ #[ tracing:: instrument( skip_all, fields( name = ?name, visible_from_module, receiver_ty) ) ]
12701285 fn iterate_inherent_trait_methods (
12711286 self_ty : & Ty ,
12721287 table : & mut InferenceTable < ' _ > ,
@@ -1293,6 +1308,7 @@ fn iterate_inherent_methods(
12931308 ControlFlow :: Continue ( ( ) )
12941309 }
12951310
1311+ #[ tracing:: instrument( skip_all, fields( name = ?name, visible_from_module, receiver_ty) ) ]
12961312 fn impls_for_self_ty (
12971313 impls : & InherentImpls ,
12981314 self_ty : & Ty ,
@@ -1356,6 +1372,7 @@ macro_rules! check_that {
13561372 } ;
13571373}
13581374
1375+ #[ tracing:: instrument( skip_all, fields( name) ) ]
13591376fn is_valid_candidate (
13601377 table : & mut InferenceTable < ' _ > ,
13611378 name : Option < & Name > ,
@@ -1403,6 +1420,7 @@ enum IsValidCandidate {
14031420 NotVisible ,
14041421}
14051422
1423+ #[ tracing:: instrument( skip_all, fields( name) ) ]
14061424fn is_valid_fn_candidate (
14071425 table : & mut InferenceTable < ' _ > ,
14081426 fn_id : FunctionId ,
@@ -1439,15 +1457,15 @@ fn is_valid_fn_candidate(
14391457 _ => unreachable ! ( ) ,
14401458 } ;
14411459
1442- let fn_subst = TyBuilder :: subst_for_def ( db, fn_id, Some ( impl_subst. clone ( ) ) )
1443- . fill_with_inference_vars ( table)
1444- . build ( ) ;
1445-
14461460 check_that ! ( table. unify( & expect_self_ty, self_ty) ) ;
14471461
14481462 if let Some ( receiver_ty) = receiver_ty {
14491463 check_that ! ( data. has_self_param( ) ) ;
14501464
1465+ let fn_subst = TyBuilder :: subst_for_def ( db, fn_id, Some ( impl_subst. clone ( ) ) )
1466+ . fill_with_inference_vars ( table)
1467+ . build ( ) ;
1468+
14511469 let sig = db. callable_item_signature ( fn_id. into ( ) ) ;
14521470 let expected_receiver =
14531471 sig. map ( |s| s. params ( ) [ 0 ] . clone ( ) ) . substitute ( Interner , & fn_subst) ;
@@ -1540,6 +1558,7 @@ pub fn implements_trait_unique(
15401558
15411559/// This creates Substs for a trait with the given Self type and type variables
15421560/// for all other parameters, to query Chalk with it.
1561+ #[ tracing:: instrument( skip_all) ]
15431562fn generic_implements_goal (
15441563 db : & dyn HirDatabase ,
15451564 env : Arc < TraitEnvironment > ,
0 commit comments