summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/bundler/definition.rb2
-rw-r--r--lib/bundler/resolver/package.rb2
-rw-r--r--lib/bundler/spec_set.rb4
3 files changed, 6 insertions, 2 deletions
diff --git a/lib/bundler/definition.rb b/lib/bundler/definition.rb
index 85951f9314..fd81fe2aa3 100644
--- a/lib/bundler/definition.rb
+++ b/lib/bundler/definition.rb
@@ -1108,7 +1108,7 @@ module Bundler
return resolution_packages if @explicit_unlocks.empty?
full_update = dup_for_full_unlock.resolve
@explicit_unlocks.each do |name|
- version = full_update[name].first&.version
+ version = full_update.version_for(name)
resolution_packages.base_requirements[name] = Gem::Requirement.new("= #{version}") if version
end
resolution_packages
diff --git a/lib/bundler/resolver/package.rb b/lib/bundler/resolver/package.rb
index 5aecc12d05..7bdcd7e9eb 100644
--- a/lib/bundler/resolver/package.rb
+++ b/lib/bundler/resolver/package.rb
@@ -18,7 +18,7 @@ module Bundler
def initialize(name, platforms, locked_specs:, unlock:, prerelease: false, prefer_local: false, dependency: nil)
@name = name
@platforms = platforms
- @locked_version = locked_specs[name].first&.version
+ @locked_version = locked_specs.version_for(name)
@unlock = unlock
@dependency = dependency || Dependency.new(name, @locked_version)
@top_level = !dependency.nil?
diff --git a/lib/bundler/spec_set.rb b/lib/bundler/spec_set.rb
index b44b98c8d3..3598ef5d52 100644
--- a/lib/bundler/spec_set.rb
+++ b/lib/bundler/spec_set.rb
@@ -169,6 +169,10 @@ module Bundler
reset!
end
+ def version_for(name)
+ self[name].first&.version
+ end
+
def what_required(spec)
unless req = find {|s| s.runtime_dependencies.any? {|d| d.name == spec.name } }
return [spec]