[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#43586: Flymake can't understand `cl-loop' and `if-let*'.
From: |
ej32u |
Subject: |
bug#43586: Flymake can't understand `cl-loop' and `if-let*'. |
Date: |
Thu, 24 Sep 2020 02:10:41 +0000 |
Hello,
Flymake is giving many errors, for a command that I believe works. This happens
with a clean init file.
The command so far is this:
;;;###autoload
(defun selectrum-bookmark ()
"Go to or create a bookmark.
To create a bookmark with the same name, use `bookmark-set' (\\[bookmark-set])."
(interactive)
;; Require `bookmark' to load the bookmark list.
(require 'bookmark)
;; Make sure bookmarks are available.
(unless bookmark-alist
(if (file-exists-p bookmark-default-file)
(bookmark-load bookmark-default-file)
(user-error "selectrum-bookmark: File not found: %s"
bookmark-default-file)))
(let ((formatted-bookmarks
(and bookmark-alist
(cl-loop
for bm in bookmark-alist
for name = (car bm)
collect (propertize
(replace-regexp-in-string
"\n"
(propertize "\\n" 'face 'warning )
(concat (propertize name 'face 'bold)
": "
(propertize
(concat (alist-get 'filename bm)
"@"
(number-to-string (alist-get
'position bm)))
'face 'underline)
": "
(alist-get 'front-context-string bm)
(propertize "|" 'face 'highlight)
(alist-get 'rear-context-string bm))
'fixed-case 'literal)
'bm bm)))))
(if-let* ((chosen-cand (selectrum-read "Bookmark: " formatted-bookmarks))
(actual-data (get-text-property 0 'bm chosen-cand)))
(bookmark-jump actual-data)
(bookmark-set chosen-cand))))
Here are some of the errors Flymake reports:
19 0 warning Unused lexical variable ‘formatted-bookmarks’
22 3 warning ‘(chosen-cand (selectrum-read "Bookmark: "
formatted-bookmarks))’ is a malformed function
34 15 warning reference to free variable ‘for’
34 19 warning reference to free variable ‘bm’
34 22 warning reference to free variable ‘in’
35 19 warning reference to free variable ‘name’
35 24 warning reference to free variable ‘=’
36 15 warning reference to free variable ‘collect’
54 52 warning reference to free variable ‘chosen-cand’
55 9 warning reference to free variable ‘actual-data’
You can see that it is treating key words as variables in `cl-loop', and cannot
see that `actual-data' is defined in `if-let*'. The command works fine when
evaluated.
Thank you.
- bug#43586: Flymake can't understand `cl-loop' and `if-let*'.,
ej32u <=