 (defun ycmd-eldoc--info-at-point ()
   "Get function info at point."
   (let ((symbol (ycmd-eldoc--with-point-at-func-name (symbol-at-point))))
-    (if (and symbol (eq symbol (car ycmd-eldoc--cache)))
-        (cadr ycmd-eldoc--cache)
+    (if (and symbol (eq symbol (aref ycmd-eldoc--cache 0)))
+        (aref ycmd-eldoc--cache 1)
       (deferred:$
         (deferred:next
           (lambda ()

is only semantic after a semantic trigger."
  :type 'list)

(defvar-local ycmd-eldoc--cache nil)

(defvar-local ycmd-eldoc--get-type-supported-p t)


          (lambda (text)
            (when text
              (setq text (ycmd--fontify-code text))
              (ycmd-eldoc--cache-store symbol text))))))))

(defun ycmd-eldoc--cache-store (symbol text)
  "Store SYMBOL and TEXT to `ycmd-eldoc--cache'."
  (aset ycmd-eldoc--cache 0 symbol)
  ;; Store text only if we have a symbol for lookup
  (aset ycmd-eldoc--cache 1 (and symbol text))
  text)

;; Source: https://github.com/racer-rust/emacs-racer/blob/master/racer.el
(defun ycmd-eldoc--goto-func-name ()
