@@ -245,91 +245,87 @@ impl Dependency {
245245 ( key. to_owned ( ) , None )
246246 } ;
247247
248- let source: Source = if let Some ( git ) = table . get ( "git" ) {
249- let mut src = GitSource :: new (
250- git . as_str ( )
251- . ok_or_else ( || invalid_type ( key , " git" , git . type_name ( ) , "string" ) ) ? ,
252- ) ;
253- if let Some ( value ) = table . get ( "branch" ) {
254- src =
255- src. set_branch ( value. as_str ( ) . ok_or_else ( || {
248+ let source: Source =
249+ if let Some ( git ) = table . get ( "git" ) {
250+ let mut src = GitSource :: new (
251+ git. as_str ( )
252+ . ok_or_else ( || invalid_type ( key , "git" , git . type_name ( ) , "string" ) ) ? ,
253+ ) ;
254+ if let Some ( value ) = table . get ( "branch" ) {
255+ src = src . set_branch ( value. as_str ( ) . ok_or_else ( || {
256256 invalid_type ( key, "branch" , value. type_name ( ) , "string" )
257257 } ) ?) ;
258- }
259- if let Some ( value) = table. get ( "tag" ) {
260- src =
261- src. set_tag ( value. as_str ( ) . ok_or_else ( || {
258+ }
259+ if let Some ( value) = table. get ( "tag" ) {
260+ src = src. set_tag ( value. as_str ( ) . ok_or_else ( || {
262261 invalid_type ( key, "tag" , value. type_name ( ) , "string" )
263262 } ) ?) ;
264- }
265- if let Some ( value) = table. get ( "rev" ) {
266- src =
267- src. set_rev ( value. as_str ( ) . ok_or_else ( || {
263+ }
264+ if let Some ( value) = table. get ( "rev" ) {
265+ src = src. set_rev ( value. as_str ( ) . ok_or_else ( || {
268266 invalid_type ( key, "rev" , value. type_name ( ) , "string" )
269267 } ) ?) ;
270- }
271- if let Some ( value) = table. get ( "version" ) {
272- src = src. set_version ( value. as_str ( ) . ok_or_else ( || {
273- invalid_type ( key, "version" , value. type_name ( ) , "string" )
274- } ) ?) ;
275- }
276- src. into ( )
277- } else if let Some ( path) = table. get ( "path" ) {
278- let base = table
279- . get ( "base" )
280- . map ( |base| {
281- base. as_str ( )
282- . ok_or_else ( || invalid_type ( key, "base" , base. type_name ( ) , "string" ) )
283- . map ( |s| s. to_owned ( ) )
284- } )
285- . transpose ( ) ?;
286- let relative_to = if let Some ( base) = & base {
287- Cow :: Owned ( lookup_path_base (
288- & PathBaseName :: new ( base. clone ( ) ) ?,
289- gctx,
290- & || Ok ( workspace_root) ,
291- unstable_features,
292- ) ?)
293- } else {
294- Cow :: Borrowed ( crate_root)
295- } ;
296- let path =
297- relative_to
268+ }
269+ if let Some ( value) = table. get ( "version" ) {
270+ src = src. set_version ( value. as_str ( ) . ok_or_else ( || {
271+ invalid_type ( key, "version" , value. type_name ( ) , "string" )
272+ } ) ?) ;
273+ }
274+ src. into ( )
275+ } else if let Some ( path) = table. get ( "path" ) {
276+ let base = table
277+ . get ( "base" )
278+ . map ( |base| {
279+ base. as_str ( )
280+ . ok_or_else ( || {
281+ invalid_type ( key, "base" , base. type_name ( ) , "string" )
282+ } )
283+ . map ( |s| s. to_owned ( ) )
284+ } )
285+ . transpose ( ) ?;
286+ let relative_to = if let Some ( base) = & base {
287+ Cow :: Owned ( lookup_path_base (
288+ & PathBaseName :: new ( base. clone ( ) ) ?,
289+ gctx,
290+ & || Ok ( workspace_root) ,
291+ unstable_features,
292+ ) ?)
293+ } else {
294+ Cow :: Borrowed ( crate_root)
295+ } ;
296+ let path = relative_to
298297 . join ( path. as_str ( ) . ok_or_else ( || {
299298 invalid_type ( key, "path" , path. type_name ( ) , "string" )
300299 } ) ?) ;
301- let mut src = PathSource :: new ( path) ;
302- src. base = base;
303- if let Some ( value) = table. get ( "version" ) {
304- src = src. set_version ( value. as_str ( ) . ok_or_else ( || {
305- invalid_type ( key, "version" , value. type_name ( ) , "string" )
306- } ) ?) ;
307- }
308- src. into ( )
309- } else if let Some ( version) = table. get ( "version" ) {
310- let src =
311- RegistrySource :: new ( version. as_str ( ) . ok_or_else ( || {
300+ let mut src = PathSource :: new ( path) ;
301+ src. base = base;
302+ if let Some ( value) = table. get ( "version" ) {
303+ src = src. set_version ( value. as_str ( ) . ok_or_else ( || {
304+ invalid_type ( key, "version" , value. type_name ( ) , "string" )
305+ } ) ?) ;
306+ }
307+ src. into ( )
308+ } else if let Some ( version) = table. get ( "version" ) {
309+ let src = RegistrySource :: new ( version. as_str ( ) . ok_or_else ( || {
312310 invalid_type ( key, "version" , version. type_name ( ) , "string" )
313311 } ) ?) ;
314- src. into ( )
315- } else if let Some ( workspace) = table. get ( "workspace" ) {
316- let workspace_bool = workspace
317- . as_bool ( )
318- . ok_or_else ( || invalid_type ( key , "workspace" , workspace . type_name ( ) , "bool" ) ) ?;
319- if !workspace_bool {
320- anyhow:: bail!( "`{key}.workspace = false` is unsupported" )
321- }
322- let src = WorkspaceSource :: new ( ) ;
323- src. into ( )
324- } else {
325- let mut msg = format ! ( "unrecognized dependency source for `{key}`" ) ;
326- if table . is_empty ( ) {
327- msg . push_str (
328- ", expected a local path, Git repository, version, or workspace dependency to be specified" ,
312+ src. into ( )
313+ } else if let Some ( workspace) = table. get ( "workspace" ) {
314+ let workspace_bool = workspace. as_bool ( ) . ok_or_else ( || {
315+ invalid_type ( key , "workspace" , workspace . type_name ( ) , "bool" )
316+ } ) ?;
317+ if !workspace_bool {
318+ anyhow:: bail!( "`{key}.workspace = false` is unsupported" )
319+ }
320+ let src = WorkspaceSource :: new ( ) ;
321+ src. into ( )
322+ } else {
323+ anyhow :: bail! (
324+ "dependency ({key}) specified without \
325+ providing a local path, Git repository, version, or \
326+ workspace dependency to use"
329327 ) ;
330- }
331- anyhow:: bail!( msg) ;
332- } ;
328+ } ;
333329 let registry = if let Some ( value) = table. get ( "registry" ) {
334330 Some (
335331 value
0 commit comments