GNU bug report logs -
#43586
Flymake can't understand `cl-loop' and `if-let*'.
Previous Next
Reported by: ej32u <at> protonmail.com
Date: Thu, 24 Sep 2020 02:11:01 UTC
Severity: normal
Done: ej32u <at> protonmail.com
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Sat, 26 Sep 2020 00:24:32 +0000
with message-id <06f1b220-8e06-fe1c-0495-219e59f5d693 <at> protonmail.com>
and subject line Re: bug#43586: Flymake can't understand `cl-loop' and `if-let*'.
has caused the debbugs.gnu.org bug report #43586,
regarding Flymake can't understand `cl-loop' and `if-let*'.
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
43586: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=43586
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
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.
[Message part 3 (message/rfc822, inline)]
Thank you, I had missed adding those.
On 9/24/20 10:44 AM, Lars Ingebrigtsen wrote:
> ej32u <at> protonmail.com writes:
>
>> Flymake is giving many errors, for a command that I believe works. This happens
>> with a clean init file.
> [...]
>
>> Here are some of the errors Flymake reports:
>>
>> 19 0 warning Unused lexical variable ‘formatted-bookmarks’
>> 22 3 warning ‘(chosen-cand (selectrum-read "Bookmark: "
> [...]
>
>> 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.
> Do the warnings go away if you put
>
> (require 'cl-lib)
> (require 'subr-x)
>
> in your file?
>
> --
> (domestic pets only, the antidote for overdose, milk.)
> bloggy blog: http://lars.ingebrigtsen.no
This bug report was last modified 4 years and 298 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.