@@ -406,7 +406,7 @@ fn resolve_examples(
406
406
warnings : & mut Vec < String > ,
407
407
errors : & mut Vec < String > ,
408
408
) -> CargoResult < Vec < TomlExampleTarget > > {
409
- let inferred = infer_from_directory ( & package_root. join ( DEFAULT_EXAMPLE_DIR_NAME ) ) ;
409
+ let inferred = infer_from_directory ( & package_root, Path :: new ( DEFAULT_EXAMPLE_DIR_NAME ) ) ;
410
410
411
411
let targets = resolve_targets (
412
412
"example" ,
@@ -462,7 +462,7 @@ fn resolve_tests(
462
462
warnings : & mut Vec < String > ,
463
463
errors : & mut Vec < String > ,
464
464
) -> CargoResult < Vec < TomlTestTarget > > {
465
- let inferred = infer_from_directory ( & package_root. join ( DEFAULT_TEST_DIR_NAME ) ) ;
465
+ let inferred = infer_from_directory ( & package_root, Path :: new ( DEFAULT_TEST_DIR_NAME ) ) ;
466
466
467
467
let targets = resolve_targets (
468
468
"test" ,
@@ -521,7 +521,7 @@ fn resolve_benches(
521
521
Some ( legacy_path)
522
522
} ;
523
523
524
- let inferred = infer_from_directory ( & package_root. join ( DEFAULT_BENCH_DIR_NAME ) ) ;
524
+ let inferred = infer_from_directory ( & package_root, Path :: new ( DEFAULT_BENCH_DIR_NAME ) ) ;
525
525
526
526
let targets = resolve_targets_with_legacy_path (
527
527
"benchmark" ,
@@ -654,12 +654,14 @@ fn inferred_bins(package_root: &Path, package_name: &str) -> Vec<(String, PathBu
654
654
if main. exists ( ) {
655
655
result. push ( ( package_name. to_string ( ) , main) ) ;
656
656
}
657
- result. extend ( infer_from_directory ( & package_root. join ( "src" ) . join ( "bin" ) ) ) ;
657
+ let default_bin_dir_name = Path :: new ( "src" ) . join ( "bin" ) ;
658
+ result. extend ( infer_from_directory ( & package_root, & default_bin_dir_name) ) ;
658
659
659
660
result
660
661
}
661
662
662
- fn infer_from_directory ( directory : & Path ) -> Vec < ( String , PathBuf ) > {
663
+ fn infer_from_directory ( package_root : & Path , relpath : & Path ) -> Vec < ( String , PathBuf ) > {
664
+ let directory = package_root. join ( relpath) ;
663
665
let entries = match fs:: read_dir ( directory) {
664
666
Err ( _) => return Vec :: new ( ) ,
665
667
Ok ( dir) => dir,
0 commit comments