From f5c6d808afb01e4c5f8192ef324bfd49b26b30c6 Mon Sep 17 00:00:00 2001 From: Sam Tobin-Hochstadt Date: Mon, 24 May 2010 23:29:17 -0700 Subject: [PATCH] Test for former bug. Closes PR 10470. original commit: 775e1b06a577a1306ab50de05174a6e26f944d40 --- collects/tests/typed-scheme/succeed/pr10470.rkt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 collects/tests/typed-scheme/succeed/pr10470.rkt diff --git a/collects/tests/typed-scheme/succeed/pr10470.rkt b/collects/tests/typed-scheme/succeed/pr10470.rkt new file mode 100644 index 00000000..bfc21cc2 --- /dev/null +++ b/collects/tests/typed-scheme/succeed/pr10470.rkt @@ -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])))) \ No newline at end of file