File tree 1 file changed +10
-0
lines changed
src/cargo/util_schemas/core
1 file changed +10
-0
lines changed Original file line number Diff line number Diff line change @@ -97,6 +97,9 @@ impl PackageIdSpec {
97
97
Some ( version) => Some ( version. parse :: < PartialVersion > ( ) ?) ,
98
98
None => None ,
99
99
} ;
100
+ if name. is_empty ( ) {
101
+ bail ! ( "package ID specification must have a name: `{spec}`" ) ;
102
+ }
100
103
validate_package_name ( name, "pkgid" , "" ) ?;
101
104
Ok ( PackageIdSpec {
102
105
name : String :: from ( name) ,
@@ -182,6 +185,10 @@ impl PackageIdSpec {
182
185
None => ( String :: from ( path_name) , None ) ,
183
186
}
184
187
} ;
188
+ if name. is_empty ( ) {
189
+ bail ! ( "package ID specification must have a name: `{url}`" ) ;
190
+ }
191
+ validate_package_name ( name. as_str ( ) , "pkgid" , "" ) ?;
185
192
Ok ( PackageIdSpec {
186
193
name,
187
194
version,
@@ -585,5 +592,8 @@ mod tests {
585
592
"sparse+https://github.com/rust-lang/cargo#0.52.0?branch=dev"
586
593
)
587
594
. is_err( ) ) ;
595
+ assert ! ( PackageIdSpec :: parse( "@1.2.3" ) . is_err( ) ) ;
596
+ assert ! ( PackageIdSpec :: parse( "registry+https://github.com" ) . is_err( ) ) ;
597
+ assert ! ( PackageIdSpec :: parse( "https://crates.io/1foo#1.2.3" ) . is_err( ) )
588
598
}
589
599
}
You can’t perform that action at this time.
0 commit comments