@@ -791,58 +791,6 @@ fn inferred_to_toml_targets(inferred: &[(String, PathBuf)]) -> Vec<TomlTarget> {
791791 . collect ( )
792792}
793793
794- fn validate_lib_name ( target : & TomlTarget , warnings : & mut Vec < String > ) -> CargoResult < ( ) > {
795- validate_target_name ( target, "library" , "lib" , warnings) ?;
796- let name = name_or_panic ( target) ;
797- if name. contains ( '-' ) {
798- anyhow:: bail!( "library target names cannot contain hyphens: {}" , name)
799- }
800-
801- Ok ( ( ) )
802- }
803-
804- fn validate_bin_name ( bin : & TomlTarget , warnings : & mut Vec < String > ) -> CargoResult < ( ) > {
805- validate_target_name ( bin, "binary" , "bin" , warnings) ?;
806- let name = name_or_panic ( bin) . to_owned ( ) ;
807- if restricted_names:: is_conflicting_artifact_name ( & name) {
808- anyhow:: bail!(
809- "the binary target name `{name}` is forbidden, \
810- it conflicts with cargo's build directory names",
811- )
812- }
813-
814- Ok ( ( ) )
815- }
816-
817- fn validate_target_name (
818- target : & TomlTarget ,
819- target_kind_human : & str ,
820- target_kind : & str ,
821- warnings : & mut Vec < String > ,
822- ) -> CargoResult < ( ) > {
823- match target. name {
824- Some ( ref name) => {
825- if name. trim ( ) . is_empty ( ) {
826- anyhow:: bail!( "{} target names cannot be empty" , target_kind_human)
827- }
828- if cfg ! ( windows) && restricted_names:: is_windows_reserved ( name) {
829- warnings. push ( format ! (
830- "{} target `{}` is a reserved Windows filename, \
831- this target will not work on Windows platforms",
832- target_kind_human, name
833- ) ) ;
834- }
835- }
836- None => anyhow:: bail!(
837- "{} target {}.name is required" ,
838- target_kind_human,
839- target_kind
840- ) ,
841- }
842-
843- Ok ( ( ) )
844- }
845-
846794/// Will check a list of toml targets, and make sure the target names are unique within a vector.
847795fn validate_unique_names ( targets : & [ TomlTarget ] , target_kind : & str ) -> CargoResult < ( ) > {
848796 let mut seen = HashSet :: new ( ) ;
@@ -1055,6 +1003,58 @@ fn name_or_panic(target: &TomlTarget) -> &str {
10551003 . unwrap_or_else ( || panic ! ( "target name is required" ) )
10561004}
10571005
1006+ fn validate_lib_name ( target : & TomlTarget , warnings : & mut Vec < String > ) -> CargoResult < ( ) > {
1007+ validate_target_name ( target, "library" , "lib" , warnings) ?;
1008+ let name = name_or_panic ( target) ;
1009+ if name. contains ( '-' ) {
1010+ anyhow:: bail!( "library target names cannot contain hyphens: {}" , name)
1011+ }
1012+
1013+ Ok ( ( ) )
1014+ }
1015+
1016+ fn validate_bin_name ( bin : & TomlTarget , warnings : & mut Vec < String > ) -> CargoResult < ( ) > {
1017+ validate_target_name ( bin, "binary" , "bin" , warnings) ?;
1018+ let name = name_or_panic ( bin) . to_owned ( ) ;
1019+ if restricted_names:: is_conflicting_artifact_name ( & name) {
1020+ anyhow:: bail!(
1021+ "the binary target name `{name}` is forbidden, \
1022+ it conflicts with cargo's build directory names",
1023+ )
1024+ }
1025+
1026+ Ok ( ( ) )
1027+ }
1028+
1029+ fn validate_target_name (
1030+ target : & TomlTarget ,
1031+ target_kind_human : & str ,
1032+ target_kind : & str ,
1033+ warnings : & mut Vec < String > ,
1034+ ) -> CargoResult < ( ) > {
1035+ match target. name {
1036+ Some ( ref name) => {
1037+ if name. trim ( ) . is_empty ( ) {
1038+ anyhow:: bail!( "{} target names cannot be empty" , target_kind_human)
1039+ }
1040+ if cfg ! ( windows) && restricted_names:: is_windows_reserved ( name) {
1041+ warnings. push ( format ! (
1042+ "{} target `{}` is a reserved Windows filename, \
1043+ this target will not work on Windows platforms",
1044+ target_kind_human, name
1045+ ) ) ;
1046+ }
1047+ }
1048+ None => anyhow:: bail!(
1049+ "{} target {}.name is required" ,
1050+ target_kind_human,
1051+ target_kind
1052+ ) ,
1053+ }
1054+
1055+ Ok ( ( ) )
1056+ }
1057+
10581058fn validate_bin_proc_macro (
10591059 target : & TomlTarget ,
10601060 _warnings : & mut Vec < String > ,
0 commit comments