 
 (defun merlin--completion-data (ident)
   "Return the data for completion of IDENT, i.e. a list of pairs (NAME . TYPE)."
+  (setq-local dwimed nil)
   (let* ((ident- (merlin--completion-split-ident ident))
          (suffix (cdr ident-))
          (prefix (car ident-))

      (setq merlin-completion-annotation-table
            (mapcar
              (lambda (a)
                (cons (merlin--completion-full-entry-name prefix compl-prefix a)
                      (concat ": " (merlin--completion-format-entry a))))
              (merlin--completion-data prefix))))
    (list start end #'merlin--completion-table

  "Compute the prefix of IDENT.  The prefix of `Foo.bar' is `Foo.' and the prefix of `bar' is `'."
  (car (merlin--completion-split-ident ident)))

(defvar-local dwimed nil
  "Remember if we used dwim for the current completion or not")

(defun merlin--completion-full-entry-name (compl-prefix entry)
  (let ((entry-name (cdr (assoc 'name entry))))
    (if dwimed entry-name (concat compl-prefix entry-name))))

(defun merlin--completion-prepare-labels (labels suffix)
  ; Remove non-matching entry, adjusting optional labels if needed
