       (orig-fun &rest args)
     :around #'lsp-ui-sideline-apply-code-actions
     "Apply code fix immediately if only one is possible."
-    (cl-letf* ((orig-completing-read (symbol-function #'completing-read))
-               ((symbol-function #'completing-read)
-                (lambda (prompt collection &rest args)
-                  (if (= (safe-length collection) 1)
-                      (car collection)
-                    (apply orig-completing-read prompt collection args)))))
+    (radian-flet ((defun completing-read (prompt collection &rest args)
+                    (if (= (safe-length collection) 1)
+                        (car collection)
+                      (apply completing-read prompt collection args))))
       (apply orig-fun args)))
 
   ;; Don't show symbol definitions in the sideline. They are pretty

        (setq blacklist nil))
      (if (member key blacklist)
          ?n
        (cl-letf* ((orig-read-char-choice
                    (symbol-function #'auth-source-read-char-choice))
                   ((symbol-function #'auth-source-read-char-choice)
                    (lambda (prompt choices)
                      (let ((choice (funcall orig-read-char-choice
                                             prompt choices)))
                        (when (= choice ?N)
                          (push key blacklist)
                          (make-directory
                           (file-name-directory
                            radian--auth-source-blacklist-file)
                           'parents)
                          (with-temp-file radian--auth-source-blacklist-file
                            (print blacklist (current-buffer)))
                          (setq choice ?n))
                        choice))))
          (funcall func file add))))))

;;; Saving files

  (declare (indent 1))
  (when (stringp regexps)
    (setq regexps (list regexps)))
  `(radian-flet ((defun message (format &rest args)
                   (let ((str (apply #'format format args)))
                     ;; Can't use an unnamed block because during
                     ;; byte-compilation, some idiot loads `cl', which
                     ;; sticks an advice onto `dolist' that makes it
                     ;; behave like `cl-dolist' (i.e., wrap it in
                     ;; another unnamed block) and therefore breaks
                     ;; this code.
                     (cl-block done
                       (dolist (regexp ',regexps)
                         (when (or (null regexp) (string-match-p regexp str))
                           (cl-return-from done)))
                       (funcall message "%s" str)))))
     ,@body))

(defun radian--advice-silence-messages (func &rest args)
