@@ -18,7 +18,7 @@ use distribution_types::{
1818use once_map:: OnceMap ;
1919use pep440_rs:: Version ;
2020use pep508_rs:: MarkerEnvironment ;
21- use pypi_types:: { Hashes , Metadata23 } ;
21+ use pypi_types:: Hashes ;
2222use uv_distribution:: to_precise;
2323use uv_normalize:: { ExtraName , PackageName } ;
2424
@@ -28,7 +28,7 @@ use crate::pins::FilePins;
2828use crate :: preferences:: Preferences ;
2929use crate :: pubgrub:: { PubGrubDistribution , PubGrubPackage } ;
3030use crate :: redirect:: apply_redirect;
31- use crate :: resolver:: { InMemoryIndex , VersionsResponse } ;
31+ use crate :: resolver:: { InMemoryIndex , MetadataResponse , VersionsResponse } ;
3232use crate :: { Manifest , ResolveError } ;
3333
3434/// Indicate the style of annotation comments, used to indicate the dependencies that requested each
@@ -66,7 +66,7 @@ impl ResolutionGraph {
6666 selection : & SelectedDependencies < UvDependencyProvider > ,
6767 pins : & FilePins ,
6868 packages : & OnceMap < PackageName , VersionsResponse > ,
69- distributions : & OnceMap < PackageId , Metadata23 > ,
69+ distributions : & OnceMap < PackageId , MetadataResponse > ,
7070 state : & State < UvDependencyProvider > ,
7171 preferences : & Preferences ,
7272 editables : Editables ,
@@ -164,13 +164,20 @@ impl ResolutionGraph {
164164 } ) ;
165165 }
166166 } else {
167- let metadata = distributions. get ( & dist. package_id ( ) ) . unwrap_or_else ( || {
167+ let response = distributions. get ( & dist. package_id ( ) ) . unwrap_or_else ( || {
168168 panic ! (
169169 "Every package should have metadata: {:?}" ,
170170 dist. package_id( )
171171 )
172172 } ) ;
173173
174+ let MetadataResponse :: Found ( metadata) = & * response else {
175+ panic ! (
176+ "Every package should have metadata: {:?}" ,
177+ dist. package_id( )
178+ )
179+ } ;
180+
174181 if metadata. provides_extras . contains ( extra) {
175182 extras
176183 . entry ( package_name. clone ( ) )
@@ -211,13 +218,20 @@ impl ResolutionGraph {
211218 } ) ;
212219 }
213220 } else {
214- let metadata = distributions. get ( & dist. package_id ( ) ) . unwrap_or_else ( || {
221+ let response = distributions. get ( & dist. package_id ( ) ) . unwrap_or_else ( || {
215222 panic ! (
216223 "Every package should have metadata: {:?}" ,
217224 dist. package_id( )
218225 )
219226 } ) ;
220227
228+ let MetadataResponse :: Found ( metadata) = & * response else {
229+ panic ! (
230+ "Every package should have metadata: {:?}" ,
231+ dist. package_id( )
232+ )
233+ } ;
234+
221235 if metadata. provides_extras . contains ( extra) {
222236 extras
223237 . entry ( package_name. clone ( ) )
@@ -417,10 +431,16 @@ impl ResolutionGraph {
417431 }
418432 VersionOrUrl :: Url ( verbatim_url) => PackageId :: from_url ( verbatim_url. raw ( ) ) ,
419433 } ;
420- let md = index
434+ let res = index
421435 . distributions
422436 . get ( & package_id)
423437 . expect ( "every package in resolution graph has metadata" ) ;
438+ let MetadataResponse :: Found ( md) = & * res else {
439+ panic ! (
440+ "Every package should have metadata: {:?}" ,
441+ dist. package_id( )
442+ )
443+ } ;
424444 for req in manifest. apply ( & md. requires_dist ) {
425445 let Some ( ref marker_tree) = req. marker else {
426446 continue ;
0 commit comments