diff --git a/Library/Homebrew/dependency.rb b/Library/Homebrew/dependency.rb index 3a203e8960..05318fc9ad 100644 --- a/Library/Homebrew/dependency.rb +++ b/Library/Homebrew/dependency.rb @@ -100,7 +100,7 @@ class Dependency grouped = deps.group_by(&:name) deps.uniq.map do |dep| - tags = grouped.fetch(dep.name).map(&:tags).flatten + tags = grouped.fetch(dep.name).map(&:tags).flatten.uniq merged_dep = dep.class.new(dep.name, tags) merged_dep.env_proc = dep.env_proc merged_dep diff --git a/Library/Homebrew/test/test_dependency_expansion.rb b/Library/Homebrew/test/test_dependency_expansion.rb index a6b9cbdec5..d0dada2e07 100644 --- a/Library/Homebrew/test/test_dependency_expansion.rb +++ b/Library/Homebrew/test/test_dependency_expansion.rb @@ -74,4 +74,12 @@ class DependencyExpansionTests < Test::Unit::TestCase env_proc = @foo.env_proc = stub assert_equal env_proc, Dependency.expand(@f).first.env_proc end + + def test_merged_tags_no_dupes + @foo2 = build_dep(:foo, ['option']) + @foo3 = build_dep(:foo, ['option']) + @deps << @foo2 << @foo3 + + assert_equal %w{option}, Dependency.expand(@f).first.tags + end end