# File lib/sass/tree/visitors/perform.rb, line 243
  def visit_warn(node)
    @environment.push_frame(:filename => node.filename, :line => node.line)
    res = node.expr.perform(@environment)
    res = res.value if res.is_a?(Sass::Script::String)
    msg = "WARNING: #{res}\n"
    @environment.stack.reverse.each_with_index do |entry, i|
      msg << "        #{i == 0 ? "on" : "from"} line #{entry[:line]}" <<
        " of #{entry[:filename] || "an unknown file"}"
      msg << ", in `#{entry[:mixin]}'" if entry[:mixin]
      msg << "\n"
    end
    Sass::Util.sass_warn msg
    []
  ensure
    @environment.pop_frame
  end