@@ -370,13 +370,13 @@ pub fn resolve_examples(
370370 warnings : & mut Vec < String > ,
371371 errors : & mut Vec < String > ,
372372) -> CargoResult < Vec < TomlExampleTarget > > {
373- let inferred = infer_from_directory ( & package_root, Path :: new ( DEFAULT_EXAMPLE_DIR_NAME ) ) ;
373+ let mut inferred = || infer_from_directory ( & package_root, Path :: new ( DEFAULT_EXAMPLE_DIR_NAME ) ) ;
374374
375375 let targets = resolve_targets (
376376 "example" ,
377377 "example" ,
378378 toml_examples,
379- & inferred,
379+ & mut inferred,
380380 package_root,
381381 edition,
382382 autodiscover,
@@ -427,13 +427,13 @@ pub fn resolve_tests(
427427 warnings : & mut Vec < String > ,
428428 errors : & mut Vec < String > ,
429429) -> CargoResult < Vec < TomlTestTarget > > {
430- let inferred = infer_from_directory ( & package_root, Path :: new ( DEFAULT_TEST_DIR_NAME ) ) ;
430+ let mut inferred = || infer_from_directory ( & package_root, Path :: new ( DEFAULT_TEST_DIR_NAME ) ) ;
431431
432432 let targets = resolve_targets (
433433 "test" ,
434434 "test" ,
435435 toml_tests,
436- & inferred,
436+ & mut inferred,
437437 package_root,
438438 edition,
439439 autodiscover,
@@ -492,13 +492,13 @@ pub fn resolve_benches(
492492 Some ( legacy_path)
493493 } ;
494494
495- let inferred = infer_from_directory ( & package_root, Path :: new ( DEFAULT_BENCH_DIR_NAME ) ) ;
495+ let mut inferred = || infer_from_directory ( & package_root, Path :: new ( DEFAULT_BENCH_DIR_NAME ) ) ;
496496
497497 let targets = resolve_targets_with_legacy_path (
498498 "benchmark" ,
499499 "bench" ,
500500 toml_benches,
501- & inferred,
501+ & mut inferred,
502502 package_root,
503503 edition,
504504 autodiscover,
@@ -540,7 +540,7 @@ fn resolve_targets(
540540 target_kind_human : & str ,
541541 target_kind : & str ,
542542 toml_targets : Option < & Vec < TomlTarget > > ,
543- inferred : & [ ( String , PathBuf ) ] ,
543+ inferred : & mut dyn FnMut ( ) -> Vec < ( String , PathBuf ) > ,
544544 package_root : & Path ,
545545 edition : Edition ,
546546 autodiscover : Option < bool > ,
@@ -567,7 +567,7 @@ fn resolve_targets_with_legacy_path(
567567 target_kind_human : & str ,
568568 target_kind : & str ,
569569 toml_targets : Option < & Vec < TomlTarget > > ,
570- inferred : & [ ( String , PathBuf ) ] ,
570+ inferred : & mut dyn FnMut ( ) -> Vec < ( String , PathBuf ) > ,
571571 package_root : & Path ,
572572 edition : Edition ,
573573 autodiscover : Option < bool > ,
@@ -576,9 +576,10 @@ fn resolve_targets_with_legacy_path(
576576 legacy_path : & mut dyn FnMut ( & TomlTarget ) -> Option < PathBuf > ,
577577 autodiscover_flag_name : & str ,
578578) -> CargoResult < Vec < TomlTarget > > {
579+ let inferred = inferred ( ) ;
579580 let toml_targets = toml_targets_and_inferred (
580581 toml_targets,
581- inferred,
582+ & inferred,
582583 package_root,
583584 autodiscover,
584585 edition,
@@ -600,7 +601,7 @@ fn resolve_targets_with_legacy_path(
600601 for mut target in toml_targets {
601602 let path = target_path (
602603 & target,
603- inferred,
604+ & inferred,
604605 target_kind,
605606 package_root,
606607 edition,
0 commit comments