class Bundler::LazySpecification

def __materialize__(candidates, fallback_to_non_installable: Bundler.frozen_bundle?)

bad gem.
about the mismatch higher up the stack, right before trying to install the
lock file, which is not allowed. In that case, we will give a proper error
doing this we avoid re-resolving and potentially end up changing the
If in frozen mode, we fallback to a non-installable candidate because by
def __materialize__(candidates, fallback_to_non_installable: Bundler.frozen_bundle?)
  search = candidates.reverse.find do |spec|
    spec.is_a?(StubSpecification) || spec.matches_current_metadata?
  end
  if search.nil? && fallback_to_non_installable
    search = candidates.last
  else
    search.dependencies = dependencies if search && search.full_name == full_name && (search.is_a?(RemoteSpecification) || search.is_a?(EndpointSpecification))
  end
  search
end