diff --git a/lib/bundler/definition.rb b/lib/bundler/definition.rb index 24dae86493..0670b49349 100644 --- a/lib/bundler/definition.rb +++ b/lib/bundler/definition.rb @@ -490,7 +490,7 @@ module Bundler end def validate_platforms! - return if current_platform_locked? + return if current_platform_locked? || @platforms.include?(Gem::Platform::RUBY) raise ProductionError, "Your bundle only supports platforms #{@platforms.map(&:to_s)} " \ "but your local platform is #{local_platform}. " \ @@ -731,7 +731,7 @@ module Bundler end def start_resolution - local_platform_needed_for_resolvability = @most_specific_non_local_locked_ruby_platform && !@platforms.include?(local_platform) + local_platform_needed_for_resolvability = @most_specific_non_local_locked_platform && !@platforms.include?(local_platform) @platforms << local_platform if local_platform_needed_for_resolvability add_platform(Gem::Platform::RUBY) if RUBY_ENGINE == "truffleruby" @@ -739,9 +739,9 @@ module Bundler @resolved_bundler_version = result.find {|spec| spec.name == "bundler" }&.version - if @most_specific_non_local_locked_ruby_platform - if spec_set_incomplete_for_platform?(result, @most_specific_non_local_locked_ruby_platform) - @platforms.delete(@most_specific_non_local_locked_ruby_platform) + if @most_specific_non_local_locked_platform + if spec_set_incomplete_for_platform?(result, @most_specific_non_local_locked_platform) + @platforms.delete(@most_specific_non_local_locked_platform) elsif local_platform_needed_for_resolvability @platforms.delete(local_platform) end @@ -758,23 +758,23 @@ module Bundler def current_platform_locked? @platforms.any? do |bundle_platform| - MatchPlatform.platforms_match?(bundle_platform, local_platform) + generic_local_platform == bundle_platform || local_platform === bundle_platform end end def add_current_platform return if @platforms.include?(local_platform) - @most_specific_non_local_locked_ruby_platform = find_most_specific_locked_ruby_platform - return if @most_specific_non_local_locked_ruby_platform + @most_specific_non_local_locked_platform = find_most_specific_locked_platform + return if @most_specific_non_local_locked_platform @new_platforms << local_platform @platforms << local_platform true end - def find_most_specific_locked_ruby_platform - return unless generic_local_platform_is_ruby? && current_platform_locked? + def find_most_specific_locked_platform + return unless current_platform_locked? @most_specific_locked_platform end