From 319e6fd4e1b3327a92fa4244f5abc03624fda3f0 Mon Sep 17 00:00:00 2001 From: Vincent St-Amour Date: Tue, 5 Jan 2016 15:51:19 -0600 Subject: [PATCH] Stop tracking struct constructors. Was only used by OC, for a now-defunct recommendation. --- .../typed-racket/optimizer/hidden-costs.rkt | 12 ------------ .../typed-racket/typecheck/tc-structs.rkt | 4 ---- typed-racket-lib/typed-racket/types/struct-table.rkt | 6 ------ 3 files changed, 22 deletions(-) diff --git a/typed-racket-lib/typed-racket/optimizer/hidden-costs.rkt b/typed-racket-lib/typed-racket/optimizer/hidden-costs.rkt index ed5b3311..d159b77a 100644 --- a/typed-racket-lib/typed-racket/optimizer/hidden-costs.rkt +++ b/typed-racket-lib/typed-racket/optimizer/hidden-costs.rkt @@ -45,18 +45,6 @@ #:do [(log-optimization-info "hidden parameter (random)" #'op)] #:with opt (syntax/loc this-syntax (op args.opt ...))) - ;; Log calls to struct constructors, so that OC can report those used in - ;; hot loops. - ;; Note: Sometimes constructors are wrapped in `#%expression', need to watch - ;; for that too. - (pattern (#%plain-app (~and op-part (~or op:id (#%expression op:id))) - args:opt-expr ...) - #:when (let ([constructor-for (syntax-property #'op 'constructor-for)]) - (or (and constructor-for (struct-constructor? constructor-for)) - (struct-constructor? #'op))) - #:do [(log-optimization-info "struct constructor" #'op)] - #:with opt (syntax/loc this-syntax (op-part args.opt ...))) - ;; regexp-match (or other regexp operation) with non-regexp pattern argument ;; (i.e. string or bytes) (pattern (#%plain-app op:regexp-function pattern-arg:opt-expr diff --git a/typed-racket-lib/typed-racket/typecheck/tc-structs.rkt b/typed-racket-lib/typed-racket/typecheck/tc-structs.rkt index 0d335ce1..0b6936b5 100644 --- a/typed-racket-lib/typed-racket/typecheck/tc-structs.rkt +++ b/typed-racket-lib/typed-racket/typecheck/tc-structs.rkt @@ -193,10 +193,6 @@ (define extra-constructor (struct-names-extra-constructor names)) - (add-struct-constructor! (struct-names-constructor names)) - (when extra-constructor - (add-struct-constructor! extra-constructor)) - (define constructor-binding (make-def-binding (struct-names-constructor names) (poly-wrapper (->* all-fields poly-base)))) diff --git a/typed-racket-lib/typed-racket/types/struct-table.rkt b/typed-racket-lib/typed-racket/types/struct-table.rkt index 19a82ff6..a9309986 100644 --- a/typed-racket-lib/typed-racket/types/struct-table.rkt +++ b/typed-racket-lib/typed-racket/types/struct-table.rkt @@ -9,10 +9,6 @@ (env init-envs env-utils)) (define struct-fn-table (make-free-id-table)) -(define struct-constructor-table (make-free-id-table)) - -(define (add-struct-constructor! id) (dict-set! struct-constructor-table id #t)) -(define (struct-constructor? id) (dict-ref struct-constructor-table id #f)) (define (add-struct-fn! id pe mut?) (dict-set! struct-fn-table id (list pe mut?))) @@ -42,8 +38,6 @@ (provide/cond-contract [add-struct-fn! (identifier? StructPE? boolean? . c:-> . c:any/c)] - [add-struct-constructor! (identifier? . c:-> . c:any)] - [struct-constructor? (identifier? . c:-> . boolean?)] [struct-accessor? (identifier? . c:-> . (c:or/c #f StructPE?))] [struct-mutator? (identifier? . c:-> . (c:or/c #f StructPE?))] [struct-fn-idx (identifier? . c:-> . exact-integer?)]