removed the use of opt/direct because it currently duplicates expressions

the missing fix is to have the optimizer figure out the name for the contract
instead of evaluating the contract to get the name
This commit is contained in:
Robby Findler 2010-10-22 14:06:25 -05:00
parent 31f4a120f1
commit 9468982d2e

View File

@ -670,15 +670,15 @@
(list #,@(filter values (map (λ (arg)
(and (arg/res-vars arg)
#`(λ (#,@(arg/res-vars arg) val blame)
(opt/direct #,(syntax-property
(syntax-property
(arg/res-ctc arg)
'racket/contract:negative-position
this->i)
'racket/contract:contract-on-boundary
(gensym '->i-indy-boundary))
val blame
un-dep))))
;; this used to use opt/direct, but opt/direct duplicates code (bad!)
(un-dep #,(syntax-property
(syntax-property
(arg/res-ctc arg)
'racket/contract:negative-position
this->i)
'racket/contract:contract-on-boundary
(gensym '->i-indy-boundary))
val blame))))
args+rst)))
;; then the non-dependent argument contracts that are themselves dependend on
(list #,@(filter values
@ -705,15 +705,15 @@
'racket/contract:contract-on-boundary
(gensym '->i-indy-boundary))))
#`(λ (#,@(arg/res-vars arg) val blame)
(opt/direct #,(syntax-property
(syntax-property
(arg/res-ctc arg)
'racket/contract:positive-position
this->i)
'racket/contract:contract-on-boundary
(gensym '->i-indy-boundary))
val blame
un-dep)))))
;; this used to use opt/direct, but opt/direct duplicates code (bad!)
(un-dep #,(syntax-property
(syntax-property
(arg/res-ctc arg)
'racket/contract:positive-position
this->i)
'racket/contract:contract-on-boundary
(gensym '->i-indy-boundary))
val blame)))))
(istx-ress an-istx))))
#''())
#,(if (istx-ress an-istx)