@@ -22,10 +22,6 @@ pub struct Resolve {
2222 replacements : HashMap < PackageId , PackageId > ,
2323 /// Inverted version of `replacements`.
2424 reverse_replacements : HashMap < PackageId , PackageId > ,
25- /// An empty `Vec` to avoid creating a new `Vec` for every package
26- /// that does not have any features, and to avoid using `Option` to
27- /// simplify the API.
28- empty_features : Vec < InternedString > ,
2925 /// Features enabled for a given package.
3026 features : HashMap < PackageId , Vec < InternedString > > ,
3127 /// Checksum for each package. A SHA256 hash of the `.crate` file used to
@@ -107,7 +103,6 @@ impl Resolve {
107103 checksums,
108104 metadata,
109105 unused_patches,
110- empty_features : Vec :: new ( ) ,
111106 reverse_replacements,
112107 public_dependencies,
113108 version,
@@ -264,7 +259,7 @@ unable to verify that `{0}` is the same as when the lockfile was generated
264259 }
265260
266261 pub fn features ( & self , pkg : PackageId ) -> & [ InternedString ] {
267- self . features . get ( & pkg) . unwrap_or ( & self . empty_features )
262+ self . features . get ( & pkg) . map ( |v| & * * v ) . unwrap_or ( & [ ] )
268263 }
269264
270265 /// This is only here for legacy support, it will be removed when
@@ -377,7 +372,7 @@ impl PartialEq for Resolve {
377372 }
378373 compare ! {
379374 // fields to compare
380- graph replacements reverse_replacements empty_features features
375+ graph replacements reverse_replacements features
381376 checksums metadata unused_patches public_dependencies summaries
382377 |
383378 // fields to ignore
0 commit comments