From 73ed7141aa410ea922516f30c816dea1e422b692 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sun, 22 Dec 2019 06:08:52 -0700 Subject: [PATCH] cs: fix local `struct` for interpreter mode Keep in `make-struct-type` form for performance and to get names right. --- racket/src/schemify/schemify.rkt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/racket/src/schemify/schemify.rkt b/racket/src/schemify/schemify.rkt index bb18829d94..5c7bf3f15b 100644 --- a/racket/src/schemify/schemify.rkt +++ b/racket/src/schemify/schemify.rkt @@ -506,9 +506,10 @@ [`(let-values ([() (begin ,rhss ... (values))]) ,bodys ...) `(begin ,@(schemify-body rhss 'fresh) ,@(schemify-body bodys wcm-state))] [`(let-values ([,idss ,rhss] ...) ,bodys ...) - (or (struct-convert-local v prim-knowns knowns imports mutated simples - (lambda (v knowns) (schemify/knowns knowns inline-fuel 'fresh v)) - #:unsafe-mode? unsafe-mode?) + (or (and (not (or for-interp? for-cify?)) + (struct-convert-local v prim-knowns knowns imports mutated simples + (lambda (v knowns) (schemify/knowns knowns inline-fuel 'fresh v)) + #:unsafe-mode? unsafe-mode?)) (left-to-right/let-values idss (for/list ([rhs (in-list rhss)]) (schemify rhs 'fresh))