fixed a bug in metafunctions

svn: r14932
This commit is contained in:
Robby Findler 2009-05-22 19:19:40 +00:00
parent f496a353db
commit b087ce2765
2 changed files with 17 additions and 1 deletions

View File

@ -1117,7 +1117,7 @@
dsc
sc))
dsc
'codom-side-conditions-rewritten
`codom-side-conditions-rewritten
'name)))
(term-define-fn name name2))
'disappeared-use

View File

@ -571,6 +571,22 @@
(test (term (foo y))
(term docare)))
(let ()
(define f-called? #f)
(define-metafunction empty-language
f : (side-condition any_1 (begin (set! f-called? #t) #t)) -> any
[(f any_1) any_1])
(test (term (f 1)) 1)
(test f-called? #t))
(let ()
(define g-called? #f)
(define-metafunction empty-language
g : any -> (side-condition any_1 (begin (set! g-called? #t) #t))
[(g any_1) any_1])
(test (term (g 1)) 1)
(test g-called? #t))
;; test that tracing works properly
;; note that caching comes into play here (which is why we don't see the recursive calls)
(let ()