@@ -501,32 +501,39 @@ fn print_lockfile_generation(
501501 status_locking ( ws, num_pkgs) ?;
502502
503503 for change in changes {
504- let possibilities = if let Some ( query) = change. alternatives_query ( ) {
505- loop {
506- match registry. query_vec ( & query, QueryKind :: Exact ) {
507- std:: task:: Poll :: Ready ( res) => {
508- break res?;
504+ match change. kind {
505+ PackageChangeKind :: Added => {
506+ let possibilities = if let Some ( query) = change. alternatives_query ( ) {
507+ loop {
508+ match registry. query_vec ( & query, QueryKind :: Exact ) {
509+ std:: task:: Poll :: Ready ( res) => {
510+ break res?;
511+ }
512+ std:: task:: Poll :: Pending => registry. block_until_ready ( ) ?,
513+ }
509514 }
510- std:: task:: Poll :: Pending => registry. block_until_ready ( ) ?,
511- }
512- }
513- } else {
514- vec ! [ ]
515- } ;
515+ } else {
516+ vec ! [ ]
517+ } ;
516518
517- {
518- let package_id = change. package_id ;
519- let required_rust_version = report_required_rust_version ( ws, resolve, package_id) ;
520- let latest = report_latest ( & possibilities, package_id) ;
521- let note = required_rust_version. or ( latest) ;
519+ let package_id = change. package_id ;
520+ let required_rust_version = report_required_rust_version ( ws, resolve, package_id) ;
521+ let latest = report_latest ( & possibilities, package_id) ;
522+ let note = required_rust_version. or ( latest) ;
522523
523- if let Some ( note) = note {
524- assert_eq ! ( change. kind, PackageChangeKind :: Added ) ;
525- ws. gctx ( ) . shell ( ) . status_with_color (
526- change. kind . status ( ) ,
527- format ! ( "{change}{note}" ) ,
528- & change. kind . style ( ) ,
529- ) ?;
524+ if let Some ( note) = note {
525+ ws. gctx ( ) . shell ( ) . status_with_color (
526+ change. kind . status ( ) ,
527+ format ! ( "{change}{note}" ) ,
528+ & change. kind . style ( ) ,
529+ ) ?;
530+ }
531+ }
532+ PackageChangeKind :: Upgraded
533+ | PackageChangeKind :: Downgraded
534+ | PackageChangeKind :: Removed
535+ | PackageChangeKind :: Unchanged => {
536+ unreachable ! ( "without a previous resolve, everything should be added" )
530537 }
531538 }
532539 }
@@ -548,42 +555,24 @@ fn print_lockfile_sync(
548555 status_locking ( ws, num_pkgs) ?;
549556
550557 for change in changes {
551- let possibilities = if let Some ( query) = change. alternatives_query ( ) {
552- loop {
553- match registry. query_vec ( & query, QueryKind :: Exact ) {
554- std:: task:: Poll :: Ready ( res) => {
555- break res?;
558+ match change. kind {
559+ PackageChangeKind :: Added
560+ | PackageChangeKind :: Upgraded
561+ | PackageChangeKind :: Downgraded => {
562+ let possibilities = if let Some ( query) = change. alternatives_query ( ) {
563+ loop {
564+ match registry. query_vec ( & query, QueryKind :: Exact ) {
565+ std:: task:: Poll :: Ready ( res) => {
566+ break res?;
567+ }
568+ std:: task:: Poll :: Pending => registry. block_until_ready ( ) ?,
569+ }
556570 }
557- std:: task:: Poll :: Pending => registry. block_until_ready ( ) ?,
558- }
559- }
560- } else {
561- vec ! [ ]
562- } ;
563-
564- let package_id = change. package_id ;
565- if change. previous_id . is_some ( ) {
566- let required_rust_version = report_required_rust_version ( ws, resolve, package_id) ;
567- let latest = report_latest ( & possibilities, package_id) ;
568- let note = required_rust_version. or ( latest) . unwrap_or_default ( ) ;
569-
570- let msg = format ! ( "{change}{note}" ) ;
571+ } else {
572+ vec ! [ ]
573+ } ;
571574
572- if change. kind == PackageChangeKind :: Downgraded {
573- ws. gctx ( ) . shell ( ) . status_with_color (
574- change. kind . status ( ) ,
575- msg,
576- & change. kind . style ( ) ,
577- ) ?;
578- } else {
579- ws. gctx ( ) . shell ( ) . status_with_color (
580- change. kind . status ( ) ,
581- msg,
582- & change. kind . style ( ) ,
583- ) ?;
584- }
585- } else {
586- if change. kind == PackageChangeKind :: Added {
575+ let package_id = change. package_id ;
587576 let required_rust_version = report_required_rust_version ( ws, resolve, package_id) ;
588577 let latest = report_latest ( & possibilities, package_id) ;
589578 let note = required_rust_version. or ( latest) . unwrap_or_default ( ) ;
@@ -594,6 +583,7 @@ fn print_lockfile_sync(
594583 & change. kind . style ( ) ,
595584 ) ?;
596585 }
586+ PackageChangeKind :: Removed | PackageChangeKind :: Unchanged => { }
597587 }
598588 }
599589
@@ -628,61 +618,45 @@ fn print_lockfile_updates(
628618 vec ! [ ]
629619 } ;
630620
631- let package_id = change. package_id ;
632- if change. previous_id . is_some ( ) {
633- let required_rust_version = report_required_rust_version ( ws, resolve, package_id) ;
634- let latest = report_latest ( & possibilities, package_id) ;
635- let note = required_rust_version. or ( latest) . unwrap_or_default ( ) ;
636-
637- let msg = format ! ( "{change}{note}" ) ;
621+ match change. kind {
622+ PackageChangeKind :: Added
623+ | PackageChangeKind :: Upgraded
624+ | PackageChangeKind :: Downgraded => {
625+ let package_id = change. package_id ;
626+ let required_rust_version = report_required_rust_version ( ws, resolve, package_id) ;
627+ let latest = report_latest ( & possibilities, package_id) ;
628+ let note = required_rust_version. or ( latest) . unwrap_or_default ( ) ;
638629
639- if change. kind == PackageChangeKind :: Downgraded {
640630 ws. gctx ( ) . shell ( ) . status_with_color (
641631 change. kind . status ( ) ,
642- msg,
643- & change. kind . style ( ) ,
644- ) ?;
645- } else {
646- ws. gctx ( ) . shell ( ) . status_with_color (
647- change. kind . status ( ) ,
648- msg,
632+ format ! ( "{change}{note}" ) ,
649633 & change. kind . style ( ) ,
650634 ) ?;
651635 }
652- } else {
653- if change. kind == PackageChangeKind :: Removed {
636+ PackageChangeKind :: Removed => {
654637 ws. gctx ( ) . shell ( ) . status_with_color (
655638 change. kind . status ( ) ,
656639 format ! ( "{change}" ) ,
657640 & change. kind . style ( ) ,
658641 ) ?;
659- } else if change. kind == PackageChangeKind :: Added {
642+ }
643+ PackageChangeKind :: Unchanged => {
644+ let package_id = change. package_id ;
660645 let required_rust_version = report_required_rust_version ( ws, resolve, package_id) ;
661646 let latest = report_latest ( & possibilities, package_id) ;
662- let note = required_rust_version. or ( latest) . unwrap_or_default ( ) ;
647+ let note = required_rust_version. as_deref ( ) . or ( latest. as_deref ( ) ) ;
663648
664- ws. gctx ( ) . shell ( ) . status_with_color (
665- change. kind . status ( ) ,
666- format ! ( "{change}{note}" ) ,
667- & change. kind . style ( ) ,
668- ) ?;
669- }
670- }
671- if change. kind == PackageChangeKind :: Unchanged {
672- let required_rust_version = report_required_rust_version ( ws, resolve, package_id) ;
673- let latest = report_latest ( & possibilities, package_id) ;
674- let note = required_rust_version. as_deref ( ) . or ( latest. as_deref ( ) ) ;
675-
676- if let Some ( note) = note {
677- if latest. is_some ( ) {
678- unchanged_behind += 1 ;
679- }
680- if ws. gctx ( ) . shell ( ) . verbosity ( ) == Verbosity :: Verbose {
681- ws. gctx ( ) . shell ( ) . status_with_color (
682- change. kind . status ( ) ,
683- format ! ( "{change}{note}" ) ,
684- & change. kind . style ( ) ,
685- ) ?;
649+ if let Some ( note) = note {
650+ if latest. is_some ( ) {
651+ unchanged_behind += 1 ;
652+ }
653+ if ws. gctx ( ) . shell ( ) . verbosity ( ) == Verbosity :: Verbose {
654+ ws. gctx ( ) . shell ( ) . status_with_color (
655+ change. kind . status ( ) ,
656+ format ! ( "{change}{note}" ) ,
657+ & change. kind . style ( ) ,
658+ ) ?;
659+ }
686660 }
687661 }
688662 }
0 commit comments