Test for former bug. Closes PR 10470.
This commit is contained in:
parent
ea27521b5c
commit
775e1b06a5
15
collects/tests/typed-scheme/succeed/pr10470.rkt
Normal file
15
collects/tests/typed-scheme/succeed/pr10470.rkt
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
(module pr10470 typed-scheme
|
||||||
|
|
||||||
|
(define-type-alias (Memo alpha) (U (Option alpha) (-> (Option alpha))))
|
||||||
|
|
||||||
|
(define-struct: table ([val : (Memo Number)]) #:mutable)
|
||||||
|
|
||||||
|
(: f (table -> (Option Number)))
|
||||||
|
(define (f tab)
|
||||||
|
(let ([proc-or-num (table-val tab)])
|
||||||
|
(cond
|
||||||
|
[(procedure? proc-or-num)
|
||||||
|
(let ([result (proc-or-num)])
|
||||||
|
(set-table-val! tab result)
|
||||||
|
result)]
|
||||||
|
[else proc-or-num]))))
|
Loading…
Reference in New Issue
Block a user