def selector_nest(*selectors)
      if selectors.empty?
        raise ArgumentError.new("$selectors: At least one selector must be passed")
      end

      parsed = [parse_selector(selectors.first, :selectors)]
      parsed += selectors[1..-1].map {|sel| parse_selector(sel, :selectors, true)}
      parsed.inject {|result, child| child.resolve_parent_refs(result)}.to_sass_script
    end
def selector_nest(*selectors)
      if selectors.empty?
        raise ArgumentError.new("$selectors: At least one selector must be passed")
      end

      parsed = [parse_selector(selectors.first, :selectors)]
      parsed += selectors[1..-1].map {|sel| parse_selector(sel, :selectors, true)}
      parsed.inject {|result, child| child.resolve_parent_refs(result)}.to_sass_script
    end
Return a new selector with all selectors in `$selectors` nested beneath
 one another as though they had been nested in the stylesheet as
 `$selector1 { $selector2 { ... } }`.

 Unlike most selector functions, `selector-nest` allows the
 parent selector `&` to be used in any selector but the first.

 @example
   selector-nest(".foo", ".bar", ".baz") => .foo .bar .baz
   selector-nest(".a .foo", ".b .bar") => .a .foo .b .bar
   selector-nest(".foo", "&.bar") => .foo.bar

 @overload selector_nest($selectors...)
   @param $selectors [[Sass::Script::Value::String, Sass::Script::Value::List]]
     The selectors to nest. At least one selector must be passed. Each of
     these can be either a string, a list of strings, or a list of lists of
     strings as returned by `&`.
   @return [Sass::Script::Value::List]
     A list of lists of strings representing the result of nesting
     `$selectors`. This is in the same format as a selector returned by
     `&`.