@@ -363,7 +363,7 @@ fn upgrade_dependency(
363
363
return Ok ( dependency) ;
364
364
}
365
365
366
- let Some ( new_req_string) = upgrade_requirement ( & current. to_string ( ) , latest) ? else {
366
+ let Some ( ( new_req_string, _ ) ) = upgrade_requirement ( & current. to_string ( ) , latest) ? else {
367
367
trace ! (
368
368
"skipping dependency `{}` because the version requirement didn't change" ,
369
369
name
@@ -426,41 +426,62 @@ pub fn write_manifest_upgrades(
426
426
dep_key_str,
427
427
dep_item,
428
428
) ?;
429
+ let name = & dependency. name ;
430
+
431
+ if let Some ( renamed_to) = dependency. rename {
432
+ trace ! (
433
+ "skipping dependency renamed from `{}` to `{}`" ,
434
+ name,
435
+ renamed_to
436
+ ) ;
437
+ continue ;
438
+ }
429
439
430
440
let Some ( current) = dependency. version ( ) else {
431
- trace ! ( "skipping dependency without a version: {}" , dependency . name) ;
441
+ trace ! ( "skipping dependency without a version: {}" , name) ;
432
442
continue ;
433
443
} ;
434
444
435
445
let ( MaybeWorkspace :: Other ( source_id) , Some ( Source :: Registry ( source) ) ) =
436
446
( dependency. source_id ( ws. gctx ( ) ) ?, dependency. source ( ) )
437
447
else {
438
- trace ! ( "skipping non-registry dependency: {}" , dependency . name) ;
448
+ trace ! ( "skipping non-registry dependency: {}" , name) ;
439
449
continue ;
440
450
} ;
441
451
442
- let Some ( latest) = upgrades. get ( & ( dependency. name . to_owned ( ) , source_id) ) else {
452
+ let Some ( latest) = upgrades. get ( & ( name. to_owned ( ) , source_id) ) else {
453
+ trace ! ( "skipping dependency without an upgrade: {}" , name) ;
454
+ continue ;
455
+ } ;
456
+
457
+ let Some ( ( new_req_string, new_req) ) = upgrade_requirement ( current, latest) ? else {
443
458
trace ! (
444
- "skipping dependency without an upgrade: {} " ,
445
- dependency . name
459
+ "skipping dependency `{}` because the version requirement didn't change " ,
460
+ name
446
461
) ;
447
462
continue ;
448
463
} ;
449
464
450
- let Some ( new_req_string ) = upgrade_requirement ( current , latest ) ? else {
465
+ let [ comparator ] = & new_req . comparators [ .. ] else {
451
466
trace ! (
452
- "skipping dependency `{}` because the version requirement didn't change" ,
453
- dependency. name
467
+ "skipping dependency `{}` with multiple version comparators: {:?}" ,
468
+ name,
469
+ new_req. comparators
454
470
) ;
455
471
continue ;
456
472
} ;
457
473
474
+ if comparator. op != Op :: Caret {
475
+ trace ! ( "skipping non-caret dependency `{}`: {}" , name, comparator) ;
476
+ continue ;
477
+ }
478
+
458
479
let mut dep = dependency. clone ( ) ;
459
480
let mut source = source. clone ( ) ;
460
481
source. version = new_req_string;
461
482
dep. source = Some ( Source :: Registry ( source) ) ;
462
483
463
- trace ! ( "upgrading dependency {}" , dependency . name) ;
484
+ trace ! ( "upgrading dependency {}" , name) ;
464
485
dep. update_toml ( & crate_root, & mut dep_key, dep_item) ;
465
486
manifest_has_changed = true ;
466
487
any_file_has_changed = true ;
0 commit comments