@@ -19,13 +19,15 @@ class Resolver
1919 # collection of gemspecs is returned. Otherwise, nil is returned.
2020 def self . resolve ( requirements , source_requirements = { } , base = [ ] , gem_version_promoter = GemVersionPromoter . new , additional_base_requirements = [ ] , platforms = nil )
2121 base = SpecSet . new ( base ) unless base . is_a? ( SpecSet )
22- resolver = new ( source_requirements , base , gem_version_promoter , additional_base_requirements , platforms )
22+ metadata_requirements , regular_requirements = requirements . partition { |dep | dep . name . end_with? ( "\0 " ) }
23+ resolver = new ( source_requirements , base , gem_version_promoter , additional_base_requirements , platforms , metadata_requirements )
2324 result = resolver . start ( requirements )
24- SpecSet . new ( SpecSet . new ( result ) . for ( requirements . reject { | dep | dep . name . end_with? ( " \0 " ) } ) )
25+ SpecSet . new ( SpecSet . new ( result ) . for ( regular_requirements ) )
2526 end
2627
27- def initialize ( source_requirements , base , gem_version_promoter , additional_base_requirements , platforms )
28+ def initialize ( source_requirements , base , gem_version_promoter , additional_base_requirements , platforms , metadata_requirements )
2829 @source_requirements = source_requirements
30+ @metadata_requirements = metadata_requirements
2931 @base = base
3032 @resolver = Molinillo ::Resolver . new ( self , self )
3133 @search_for = { }
@@ -344,8 +346,6 @@ def version_conflict_message(e)
344346 trees . sort_by! { |t | t . reverse . map ( &:name ) }
345347 end
346348
347- metadata_requirements = { }
348-
349349 o << trees . map do |tree |
350350 t = "" . dup
351351 depth = 2
@@ -354,7 +354,6 @@ def version_conflict_message(e)
354354 base_tree_name = base_tree . name
355355
356356 if base_tree_name . end_with? ( "\0 " )
357- metadata_requirements [ base_tree_name ] = base_tree
358357 t = nil
359358 else
360359 tree . each do |req |
@@ -393,7 +392,7 @@ def version_conflict_message(e)
393392 end
394393 end
395394 elsif name . end_with? ( "\0 " )
396- o << %(\n Current #{ name } version:\n #{ SharedHelpers . pretty_dependency ( metadata_requirements [ name ] ) } \n \n )
395+ o << %(\n Current #{ name } version:\n #{ SharedHelpers . pretty_dependency ( @ metadata_requirements. find { | req | req . name == name } ) } \n \n )
397396 elsif conflict . locked_requirement
398397 o << "\n "
399398 o << %(Running `bundle update` will rebuild your snapshot from scratch, using only\n )
0 commit comments