@@ -107,14 +107,15 @@ def initialize(lockfile, dependencies, sources, unlock, ruby_version = nil, opti
107107 @locked_ruby_version = @locked_gems . ruby_version
108108 @locked_deps = @locked_gems . dependencies
109109 @originally_locked_specs = SpecSet . new ( @locked_gems . specs )
110+ @originally_locked_sources = @locked_gems . sources
110111 @locked_checksums = @locked_gems . checksums
111112
112113 if @unlocking_all
113114 @locked_specs = SpecSet . new ( [ ] )
114115 @locked_sources = [ ]
115116 else
116117 @locked_specs = @originally_locked_specs
117- @locked_sources = @locked_gems . sources
118+ @locked_sources = @originally_locked_sources
118119 end
119120 else
120121 @locked_gems = nil
@@ -123,8 +124,9 @@ def initialize(lockfile, dependencies, sources, unlock, ruby_version = nil, opti
123124 @platforms = [ ]
124125 @locked_deps = { }
125126 @locked_specs = SpecSet . new ( [ ] )
126- @originally_locked_specs = @locked_specs
127127 @locked_sources = [ ]
128+ @originally_locked_specs = @locked_specs
129+ @originally_locked_sources = @locked_sources
128130 @locked_checksums = Bundler . feature_flag . lockfile_checksums?
129131 end
130132
@@ -954,7 +956,7 @@ def converge_sources
954956 sources . all_sources . each do |source |
955957 # has to be done separately, because we want to keep the locked checksum
956958 # store for a source, even when doing a full update
957- if @locked_checksums && @locked_gems && locked_source = @locked_gems . sources . find { |s | s == source && !s . equal? ( source ) }
959+ if @locked_checksums && @locked_gems && locked_source = @originally_locked_sources . find { |s | s == source && !s . equal? ( source ) }
958960 source . checksum_store . merge! ( locked_source . checksum_store )
959961 end
960962 # If the source is unlockable and the current command allows an unlock of
@@ -1137,7 +1139,7 @@ def lockfiles_equal?(current, proposed, preserve_unknown_sections)
11371139 end
11381140
11391141 def additional_base_requirements_to_prevent_downgrades ( resolution_base )
1140- return resolution_base unless @locked_gems && !sources . expired_sources? ( @locked_gems . sources )
1142+ return resolution_base unless @locked_gems && !sources . expired_sources? ( @originally_locked_sources )
11411143 @originally_locked_specs . each do |locked_spec |
11421144 next if locked_spec . source . is_a? ( Source ::Path ) || locked_spec . source_changed?
11431145
0 commit comments