Merge pull request #11454 from Rylan12/fix-uses-caching

dependency: don't merge formula and cask cache in `::expand`
This commit is contained in:
Rylan Polster 2021-05-31 17:26:16 -04:00 committed by GitHub
commit f7b1ccfcf6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 4 deletions

View File

@ -96,7 +96,7 @@ class Dependency
if cache_key.present?
cache[cache_key] ||= {}
return cache[cache_key][dependent.full_name].dup if cache[cache_key][dependent.full_name]
return cache[cache_key][cache_id dependent].dup if cache[cache_key][cache_id dependent]
end
expanded_deps = []
@ -122,7 +122,7 @@ class Dependency
end
expanded_deps = merge_repeats(expanded_deps)
cache[cache_key][dependent.full_name] = expanded_deps.dup if cache_key.present?
cache[cache_key][cache_id dependent] = expanded_deps.dup if cache_key.present?
expanded_deps
ensure
@expand_stack.pop
@ -170,6 +170,10 @@ class Dependency
private
def cache_id(dependent)
"#{dependent.full_name}_#{dependent.class}"
end
def merge_tags(deps)
other_tags = deps.flat_map(&:option_tags).uniq
other_tags << :test if deps.flat_map(&:tags).include?(:test)

View File

@ -223,7 +223,7 @@ class Requirement
def expand(dependent, cache_key: nil, &block)
if cache_key.present?
cache[cache_key] ||= {}
return cache[cache_key][dependent.full_name].dup if cache[cache_key][dependent.full_name]
return cache[cache_key][cache_id dependent].dup if cache[cache_key][cache_id dependent]
end
reqs = Requirements.new
@ -239,7 +239,7 @@ class Requirement
end
end
cache[cache_key][dependent.full_name] = reqs.dup if cache_key.present?
cache[cache_key][cache_id dependent] = reqs.dup if cache_key.present?
reqs
end
@ -258,5 +258,11 @@ class Requirement
def prune
throw(:prune, true)
end
private
def cache_id(dependent)
"#{dependent.full_name}_#{dependent.class}"
end
end
end