Test for former bug. Closes PR 10470.
original commit: 775e1b06a577a1306ab50de05174a6e26f944d40
This commit is contained in:
parent
987521b9eb
commit
f5c6d808af
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