Summary
condition-case expands into two else clauses
Metadata
- Id: d72be56749d1d3e9911a0e8ef53e2a476c6a63d8
- Trac id: 1080
- Type: defect
- Reporter: ckeen
- Owner:
- Cc:
- Status: closed
- Component: unknown
- Estimated difficulty:
- Resolution: fixed
- Priority: major
- Milestone: 4.9.0
- Version: 4.8.x
- Changetime: 2013-12-14 17:20:02 UTC
- Created: 2013-12-10 15:50:13 UTC
- Keywords: syntax condition-case compiler
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