@@ -6,7 +6,7 @@ use std::path::PathBuf;
66use anyhow:: Context as _;
77use cargo_edit:: {
88 CargoResult , CertsSource , CrateSpec , Dependency , IndexCache , LocalManifest , RustVersion ,
9- Source , get_compatible_dependency , get_latest_dependency , registry_url, set_dep_version,
9+ Source , find_compatible_version , find_latest_version , registry_url, set_dep_version,
1010 shell_note, shell_status, shell_warn, shell_write_stdout,
1111} ;
1212use clap:: Args ;
@@ -290,31 +290,31 @@ fn exec(args: UpgradeArgs) -> CargoResult<()> {
290290 // we're offline.
291291 let registry_url = registry_url ( & manifest_path, dependency. registry ( ) ) ?;
292292 let index = index. index ( & registry_url) ?;
293+ let krate = index. krate ( & dependency. name ) ?;
294+ let versions = krate
295+ . as_ref ( )
296+ . map ( |k| k. versions . as_slice ( ) )
297+ . unwrap_or_default ( ) ;
298+ let is_prerelease = old_version_req. contains ( '-' ) ;
299+
293300 let latest_compatible = VersionReq :: parse ( & old_version_req)
294301 . ok ( )
295302 . and_then ( |old_version_req| {
296- get_compatible_dependency (
297- & dependency. name ,
298- & old_version_req,
299- rust_version,
300- index,
301- )
302- . ok ( )
303+ find_compatible_version ( versions, & old_version_req, rust_version)
303304 } )
304305 . map ( |d| {
305306 d. version ( )
306307 . expect ( "registry packages always have a version" )
307308 . to_owned ( )
308309 } ) ;
309- let is_prerelease = old_version_req. contains ( '-' ) ;
310- let latest_version =
311- get_latest_dependency ( & dependency. name , is_prerelease, rust_version, index)
312- . map ( |d| {
313- d. version ( )
314- . expect ( "registry packages always have a version" )
315- . to_owned ( )
316- } )
317- . ok ( ) ;
310+
311+ let latest_version = find_latest_version ( versions, is_prerelease, rust_version)
312+ . map ( |d| {
313+ d. version ( )
314+ . expect ( "registry packages always have a version" )
315+ . to_owned ( )
316+ } ) ;
317+
318318 let latest_incompatible = if latest_version != latest_compatible {
319319 latest_version
320320 } else {
0 commit comments