On 30.07.2024 21:51, Tomas Volf wrote:
> Hello,
>
> I think I found a bug in (srfi srfi-64) module shipped with GNU Guile.
>
> The specification describes the on-bad-end-name-function like this:
>
> (on-bad-end-name-function runner begin-name end-name)
>
> Thus the following should print `x':
>
> (use-modules (srfi srfi-64))
> (let ((r (test-runner-null)))
> (test-runner-current r)
> (test-runner-on-bad-end-name! r
> (λ (runner begin-name end-name)
> (pk begin-name)))
> (test-begin "x")
> (test-assert #t)
> (test-end "y"))
>
> But it does not:
>
> ;;; ("y")
>
> Have a nice day
> Tomas Volf
>
>
This is clearly a bug IMO and I've now fixed it in my implementation.
I've also decided to remove the check on whether the begin-name is true,
because as per spec it's not allowed to be false anyway, and IMO it should call
the bad-end-name callback if the begin-name was explicitly passed as #f but the
end-name is not also #f.
- Taylan