def warn(type, msg, file={}, args=[])
      if warning_enabled?(type, file[:filename], args)
        print_warning(msg, file[:filename], file[:linenr])
      end

      return false
    end
def warn(type, msg, file={}, args=[])
      if warning_enabled?(type, file[:filename], args)
        print_warning(msg, file[:filename], file[:linenr])
      end

      return false
    end
Prints warning message.

 The type must be one of predefined warning types which can be
 toggled on/off with command-line options, or it can be nil, in
 which case the warning is always shown.

 Ignores duplicate warnings - only prints the first one.
 Works best when --processes=0, but it reduces the amount of
 warnings greatly also when run multiple processes.

 The `file` parameter must be a hash like:

     {:filename => "foo.js", :linenr => 17}

 When supplied, it the filename and line number will be appended
 to the message, to convey where the warning was triggered.

 The optional `args` parameter must be an array of arguments and
 only applies to some warning types like :nodoc.