                    (forward-char 1)))))))
 
 (defun tern-show-argument-hints ()
-  (declare (special message-log-max))
   (cl-destructuring-bind (paren . type) tern-last-argument-hints
     (let ((parts ())
           (current-arg (tern-find-current-arg paren)))

         (url (url-parse-make-urlobj "http" nil nil tern-server port "/" nil nil nil)))
    (url-http url #'tern-req-finished (list c))))

;; This is necessary to force proper dynamic binding below, for some reason.
(defvar url-callback-function)

(defun tern-req-finished (c)
  (declare (special url-http-process url-callback-function))
  (let ((is-error (and (consp c) (eq (car c) :error)))
        (found-body (search-forward "\n\n" nil t))
        (deactivate-mark nil))

       (let ((indent (current-indentation))
             (pos (line-beginning-position)))
         (when (or (not min-indent) (< indent min-indent))
           (setf min-indent indent))
         (goto-char pos)
         (when (<= pos min-pos) (cl-return))))
      (unless start-pos (goto-char min-pos) (setf start-pos (line-beginning-position))))
