Subject: 31.0.50; 'should' defeats warning from set-advertised-calling-convention

From: Stefan Kangas <[email-masked]>
Date: Mon, 16 Dec 2024 23:47:52 +0000

Severity: minor

Create a file foo.el with this content:

    ;; -*- lexical-binding: t; -*-
    (defun foo (&optional a) a)
    (set-advertised-calling-convention 'foo '(a) '"31.1")
    (foo)

Create a second file bar.el with this:

    ;; -*- lexical-binding: t; -*-
    (load "foo")
    (require 'ert)
    (foo)
    (should (foo))

Byte-compile bar.el and observe that there is only one warning:

bar.el:4:2: Warning: ‘foo’ called with 0 arguments, but requires 1

Expected is two warnings, like this:

bar.el:4:2: Warning: ‘foo’ called with 0 arguments, but requires 1
bar.el:5:2: Warning: ‘foo’ called with 0 arguments, but requires 1