schemify: fix pessimization of constructor applications

A missing `unwrap` caused references to structure constructors to be
treated as potentially non-primitive procedures, which significantly
slows down calls to the constructor.

Probably, this started going wrong at a point where original names
were more consistently associated to defined identifier.
This commit is contained in:
Matthew Flatt 2018-12-31 14:16:31 -07:00
parent 21bbf1b42e
commit 7e83a6038a

View File

@ -64,8 +64,9 @@
;; too early, the variable is now ready, so remove from
;; `mutated`:
(for ([id (in-list ids)])
(when (eq? 'not-ready (hash-ref mutated (unwrap id) #f))
(hash-remove! mutated id)))]
(let ([id (unwrap id)])
(when (eq? 'not-ready (hash-ref mutated id #f))
(hash-remove! mutated id))))]
[`,_
(find-mutated! form #f prim-knowns knowns imports mutated)])
knowns)