Subject: bug#58007: 28.1; compilation-error-properties skips non-matching FILE indices

From: Stefan Kangas <[email-masked]>
Date: Wed, 6 Sep 2023 15:50:25 -0700

Lars Ingebrigtsen <[email-masked]> writes:

> Reading the patch again, you're right -- since most of the changes are
> indentation changes, we can apply the patch without a copyright
> assignment.
>
> However, your patch leads to a test failure -- can you have a look at
> that?

That was one year ago.

Axel, did you have a chance to look into the below test failure?

> Test compile-test-functions backtrace:
>   file-name-absolute-p(("my-file"))
>   compilation-error-properties((closure (t) nil '("my-file")) (closure
>   compilation-parse-errors(1 17)
>   (let ((rule (nth 0 test)) (str (nth 1 test)) (pos (nth 2 test)) (col
>   (let ((ert--infos (cons (cons "testcase: " (format "%S" test)) ert--
>   compile--test-error-line((my-rule "My error message" 1 (39 . 24) (12
>   (let ((compilation-num-errors-found 0) (compilation-num-warnings-fou
>   (progn (font-lock-mode -1) (let ((compilation-num-errors-found 0) (c
>   (unwind-protect (progn (font-lock-mode -1) (let ((compilation-num-er
>   (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn
>   (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current
>   (let* ((file-fun #'(lambda nil '("my-file"))) (line-start-fun #'(lam
>   (closure (t) nil (let* ((file-fun #'(lambda nil '("my-file"))) (line
>   ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
>   ert-run-test(#s(ert-test :name compile-test-functions :documentation
>   ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
>   ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
>   ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
>   ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
>   eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
>   command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/progmodes/compile-te
>   command-line()
>   normal-top-level()
> Test compile-test-functions condition:
>     testcase: (my-rule "My error message" 1 (39 . 24) (123 . 134) "my-file" 2)
>     (wrong-type-argument stringp
> 			 ("my-file"))
>    FAILED  2/3  compile-test-functions (0.000089 sec) at lisp/progmodes/compile-tests.el:522
>    passed  3/3  compile-test-grep-regexps (0.001284 sec)
>
> Ran 3 tests, 2 results as expected, 1 unexpected (2022-09-24 12:26:55+0200, 0.083845 sec)
>
> 1 unexpected results:
>    FAILED  compile-test-functions