[Resolver] Do not override no spec found message

parent 9888b42b
...@@ -104,13 +104,7 @@ module Pod ...@@ -104,13 +104,7 @@ module Pod
def search_for(dependency) def search_for(dependency)
@search ||= {} @search ||= {}
@search[dependency] ||= begin @search[dependency] ||= begin
requirement = Requirement.new(dependency.requirement.as_list << requirement_for_locked_pod_named(dependency.name)) specifications_for_dependency(dependency, [requirement_for_locked_pod_named(dependency.name)])
find_cached_set(dependency).
all_specifications.
select { |s| requirement.satisfied_by? s.version }.
map { |s| s.subspec_by_name(dependency.name, false) }.
compact.
reverse
end end
@search[dependency].dup @search[dependency].dup
end end
...@@ -279,6 +273,27 @@ module Pod ...@@ -279,6 +273,27 @@ module Pod
# @!group Private helpers # @!group Private helpers
# Returns available specifications which satisfy requirements of given dependency
# and additional requirements.
#
# @param [Dependency] dependency
# The dependency whose requirements will be satisfied.
#
# @param [Array<Requirement>] additional_requirements
# List of additional requirements which should also be satisfied.
#
# @return [Array<Specification>] List of specifications satisfying given requirements.
#
def specifications_for_dependency(dependency, additional_requirements = [])
requirement = Requirement.new(dependency.requirement.as_list + additional_requirements)
find_cached_set(dependency).
all_specifications.
select { |s| requirement.satisfied_by? s.version }.
map { |s| s.subspec_by_name(dependency.name, false) }.
compact.
reverse
end
# @return [Set] Loads or returns a previously initialized set for the Pod # @return [Set] Loads or returns a previously initialized set for the Pod
# of the given dependency. # of the given dependency.
# #
...@@ -373,6 +388,7 @@ module Pod ...@@ -373,6 +388,7 @@ module Pod
error.conflicts.each do |name, conflict| error.conflicts.each do |name, conflict|
local_pod_parent = conflict.requirement_trees.flatten.reverse.find(&:local?) local_pod_parent = conflict.requirement_trees.flatten.reverse.find(&:local?)
lockfile_reqs = conflict.requirements[name_for_locking_dependency_source] lockfile_reqs = conflict.requirements[name_for_locking_dependency_source]
if lockfile_reqs && lockfile_reqs.last && lockfile_reqs.last.prerelease? && !conflict.existing if lockfile_reqs && lockfile_reqs.last && lockfile_reqs.last.prerelease? && !conflict.existing
message = 'Due to the previous naïve CocoaPods resolver, ' \ message = 'Due to the previous naïve CocoaPods resolver, ' \
"you were using a pre-release version of `#{name}`, " \ "you were using a pre-release version of `#{name}`, " \
...@@ -381,7 +397,7 @@ module Pod ...@@ -381,7 +397,7 @@ module Pod
'version requirement to your Podfile ' \ 'version requirement to your Podfile ' \
"(e.g. `pod '#{name}', '#{lockfile_reqs.map(&:requirement).join("', '")}'`) " \ "(e.g. `pod '#{name}', '#{lockfile_reqs.map(&:requirement).join("', '")}'`) " \
"or revert to a stable version by running `pod update #{name}`." "or revert to a stable version by running `pod update #{name}`."
elsif local_pod_parent elsif local_pod_parent && !specifications_for_dependency(conflict.requirement).empty?
# Conflict was caused by a requirement from a local dependency. # Conflict was caused by a requirement from a local dependency.
# Tell user to use `pod update`. # Tell user to use `pod update`.
message << "\n\nIt seems like you've changed the constraints of dependency `#{name}` " \ message << "\n\nIt seems like you've changed the constraints of dependency `#{name}` " \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment