# File lib/sass/selector/simple_sequence.rb, line 64 def do_extend(extends, seen = Set.new) extends.get(members.to_set).map do |seq, sels| # If A {@extend B} and C {...}, # seq is A, sels is B, and self is C self_without_sel = self.members - sels next unless unified = seq.members.last.unify(self_without_sel) [sels, seq.members[0...-1] + [unified]] end.compact.map do |sels, seq| seq = Sequence.new(seq) seen.include?(sels) ? [] : seq.do_extend(extends, seen + [sels]) end.flatten.uniq end