[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#66136: 29.1; byte-compiler reports "misplaced interactive spec" with
From: |
Stefan Monnier |
Subject: |
bug#66136: 29.1; byte-compiler reports "misplaced interactive spec" with empty fct in lexical environment |
Date: |
Fri, 22 Sep 2023 10:59:21 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
>> Date: Thu, 21 Sep 2023 23:39:47 +0200
>> From: Jens Schmidt via "Bug reports for GNU Emacs,
>> the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
>>
>> Found the issue I think:
>>
>> -------------------- bad case --------------------
>> (macroexp-parse-body '("Allows interactive calls." (interactive "^P")))
>>
>> =>
>>
>> (("Allows interactive calls.")
>> (interactive "^P"))
>> -------------------- bad case --------------------
>>
>> -------------------- good case --------------------
>> (macroexp-parse-body '("Allows interactive calls." (interactive "^P") nil))
>>
>> =>
>>
>> (("Allows interactive calls." (interactive "^P"))
>> nil)
>> -------------------- good case --------------------
>>
>> That is, macroexp-parse-body does not consider the case that a body can
>> consist of declarations only and, if this is the case, puts the last
>> declaration into the body forms.
>>
>> Could provide a patch if somebody confirms that this is really the root
>> cause of this issue. Yet on the other hand this is pretty deep elisp,
>> so if somebody else steps forward, I'll be glad as well.
>
> Adding Stefan, in case he has comments/suggestions.
I'm in favor of requiring *something* after the declarations.
So yes, the first case above is a bug and should be fixed, but rather
than return
(("Allows interactive calls." (interactive "^P"))
nil)
I think it should return something like
(("Allows interactive calls." (interactive "^P"))
,(macroexp-warn-and-return "Missing body" ...))
-- Stefan
- bug#66136: 29.1; byte-compiler reports "misplaced interactive spec" with empty fct in lexical environment, Jens Schmidt, 2023/09/21
- bug#66136: 29.1; byte-compiler reports "misplaced interactive spec" with empty fct in lexical environment, Jens Schmidt, 2023/09/21
- bug#66136: 29.1; byte-compiler reports "misplaced interactive spec" with empty fct in lexical environment, Jens Schmidt, 2023/09/21
- bug#66136: 29.1; byte-compiler reports "misplaced interactive spec" with empty fct in lexical environment, Eli Zaretskii, 2023/09/22
- bug#66136: 29.1; byte-compiler reports "misplaced interactive spec" with empty fct in lexical environment,
Stefan Monnier <=
- bug#66136: 29.1; byte-compiler reports "misplaced interactive spec" with empty fct in lexical environment, Jens Schmidt, 2023/09/22
- bug#66136: 29.1; byte-compiler reports "misplaced interactive spec" with empty fct in lexical environment, Stefan Monnier, 2023/09/22
- bug#66136: 29.1; byte-compiler reports "misplaced interactive spec" with empty fct in lexical environment, Jens Schmidt, 2023/09/22
- bug#66136: 29.1; byte-compiler reports "misplaced interactive spec" with empty fct in lexical environment, Mattias Engdegård, 2023/09/23
- bug#66136: 29.1; byte-compiler reports "misplaced interactive spec" with empty fct in lexical environment, Stefan Monnier, 2023/09/23
- bug#66136: 29.1; byte-compiler reports "misplaced interactive spec" with empty fct in lexical environment, Mattias Engdegård, 2023/09/23
- bug#66136: 29.1; byte-compiler reports "misplaced interactive spec" with empty fct in lexical environment, Stefan Monnier, 2023/09/23
- bug#66136: 29.1; byte-compiler reports "misplaced interactive spec" with empty fct in lexical environment, Mattias Engdegård, 2023/09/24
- bug#66136: 29.1; byte-compiler reports "misplaced interactive spec" with empty fct in lexical environment, Stefan Monnier, 2023/09/24
- bug#66136: 29.1; byte-compiler reports "misplaced interactive spec" with empty fct in lexical environment, Jens Schmidt, 2023/09/23