Summary

condition-case expands into two else clauses

Metadata

Description

When expanding the following you can see the second else clause. The compiler in current master warns about this:

 #;2> ,x (condition-case 'something ((exn some thing) 'foo) (exn () 'bar))
 ((call-with-current-continuation
    (##core#lambda
      (k)
      (with-exception-handler
        (##core#lambda
          (exvar)
          (k (##core#lambda
               ()
               (##core#let
                 ((kvar (and (##sys#structure? exvar (##core#quote condition))
                             (##sys#slot exvar 1))))
                 (cond ((and kvar
                             (memv (##core#quote exn) kvar)
                             (memv (##core#quote some) kvar)
                             (memv (##core#quote thing) kvar))
                        (##core#let () 'foo))
                       (else (##core#let ((exn exvar)) 'bar))
                       (else (##sys#signal exvar)))))))
        (##core#lambda
          ()
          (##sys#call-with-values
            (##core#lambda () 'something)
            (##core#lambda
              args
              (k (##core#lambda () (##sys#apply ##sys#values args))))))))))

Changes and comments

[2013-12-14 17:20:02 UTC] ckeen changed status from new to closed

[2013-12-14 17:20:02 UTC] ckeen set resolution to fixed

[2013-12-14 17:20:02 UTC] ckeen wrote:

Fixed in master with commit b504261