GNU bug report logs - #75997
(ice-9 match): warning: unused variable `failure'

Previous Next

Package: guile;

Reported by: Tomas Volf <~@wolfsden.cz>

Date: Sat, 1 Feb 2025 20:09:01 UTC

Severity: normal

Full log


Message #11 received at 75997 <at> debbugs.gnu.org (full text, mbox):

From: Tomas Volf <~@wolfsden.cz>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 75997 <at> debbugs.gnu.org
Subject: Re: bug#75997: (ice-9 match): warning: unused variable `failure'
Date: Fri, 28 Feb 2025 02:33:32 +0100
[Message part 1 (text/plain, inline)]
Ludovic Courtès <ludo <at> gnu.org> writes:

> Tomas Volf <~@wolfsden.cz> skribis:
>
>> (lambda (expr)
>>   (let* ((v expr)
>>          (failure
>>            (lambda ()
>>              ((@@ (ice-9 match) throw)
>>               'match-error
>>               "match"
>>               "no matching pattern"
>>               v)
>>              #f)))
>>     #f))
>
> Hi!  Currently the unused-variable warning pass is unable to determine
> that ‘failure’ was introduced by expanding a macro and thus that no
> warning should be emitted.
>
> It’s always been this way and I don’t know of a clear way to fix it.

I cannot really help regarding the general case.  However in this
specific it would likely suffice to tweak the expansion to

--8<---------------cut here---------------start------------->8---
(lambda (expr)
  (let* ((v expr)
         (failure
           (lambda ()
             ((@@ (ice-9 match) throw)
              'match-error
              "match"
              "no matching pattern"
              v)
             #f)))
    failure
    #f))
--8<---------------cut here---------------end--------------->8---

Should have zero performance impact due to optimizations (I would hope),
but feels somewhat ugly.

Tomas

-- 
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.
[signature.asc (application/pgp-signature, inline)]

This bug report was last modified 110 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.