typed-racket/typed-racket-test/fail/dead-substruct.rkt
2014-12-16 10:07:25 -05:00

17 lines
380 B
Racket

#;
(exn-pred 2)
#lang typed/scheme
(define-struct: parent ((x : Integer)))
(define-struct: (child1 parent) ((y : Integer)))
(define-struct: (child2 parent) ((y : Float)))
(: f (parent -> Integer))
(define (f x)
(cond [(child1? x) (+ "a" "b")] ; rhs was considered dead code
[(child2? x) 2]
[else (error "eh?")]))
(f (make-child1 1 2))
(f (make-child2 1 2.0))