had to find a new way to defeat the inlining

svn: r6413
This commit is contained in:
Robby Findler 2007-05-30 17:32:39 +00:00
parent 9123e74cfe
commit 377c5b3ad0

View File

@ -49,13 +49,17 @@ which are then called when the contract's fields are explored
clause)]))]))]
[all-ac-ids (generate-temporaries field-names)]
[defeat-inlining
;; makes the procedure "big enough" so
;; that inlining doesn't consider it.
;; makes the procedure confusing enough so that
;; inlining doesn't consider it. this makes the
;; call to procedure-closure-contents-eq? work
;; properly
(λ (e)
(let loop ([i 30])
(cond
[(zero? i) e]
[else #`(values #,(loop (- i 1)))])))])
(let loop ([n 20])
(if (zero? n)
e
#`(if (zero? (random 1))
#,(loop (- n 1))
(/ 1 0)))))])
(let loop ([clauses (syntax->list clauses)]
[ac-ids all-ac-ids]
[prior-ac-ids '()]