From b9268e99dbf1755ed1b76226d3b2f3fcbaba4845 Mon Sep 17 00:00:00 2001 From: Vincent St-Amour Date: Fri, 31 Jul 2015 18:59:15 -0500 Subject: [PATCH] Move syntax-length to TR. --- typed-racket-lib/typed-racket/base-env/colon.rkt | 3 ++- typed-racket-lib/typed-racket/base-env/prims-contract.rkt | 2 +- typed-racket-lib/typed-racket/base-env/prims-struct.rkt | 1 - typed-racket-lib/typed-racket/base-env/prims.rkt | 1 - .../typed-racket/typecheck/tc-app/tc-app-hetero.rkt | 2 +- .../typed-racket/typecheck/tc-app/tc-app-lambda.rkt | 2 +- .../typed-racket/typecheck/tc-app/tc-app-values.rkt | 2 +- typed-racket-lib/typed-racket/typecheck/tc-expression.rkt | 1 - typed-racket-lib/typed-racket/utils/utils.rkt | 7 ++++++- 9 files changed, 12 insertions(+), 9 deletions(-) diff --git a/typed-racket-lib/typed-racket/base-env/colon.rkt b/typed-racket-lib/typed-racket/base-env/colon.rkt index e33ff826..72bb7107 100644 --- a/typed-racket-lib/typed-racket/base-env/colon.rkt +++ b/typed-racket-lib/typed-racket/base-env/colon.rkt @@ -1,8 +1,9 @@ #lang racket/base -(require (for-syntax racket/base syntax/parse/pre unstable/syntax +(require (for-syntax racket/base syntax/parse/pre "../private/parse-classes.rkt" "../utils/disappeared-use.rkt" + "../utils/utils.rkt" (only-in "../utils/tc-utils.rkt" tc-error/stx)) (submod "../typecheck/internal-forms.rkt" forms) (prefix-in t: "base-types-extra.rkt")) diff --git a/typed-racket-lib/typed-racket/base-env/prims-contract.rkt b/typed-racket-lib/typed-racket/base-env/prims-contract.rkt index 2a525186..f6f46137 100644 --- a/typed-racket-lib/typed-racket/base-env/prims-contract.rkt +++ b/typed-racket-lib/typed-racket/base-env/prims-contract.rkt @@ -56,7 +56,6 @@ syntax/parse/pre syntax/stx racket/syntax - unstable/syntax racket/base racket/struct-info syntax/struct @@ -67,6 +66,7 @@ ;; struct-extraction is actually used at both of these phases "../utils/struct-extraction.rkt" (for-syntax "../utils/struct-extraction.rkt") + (only-in "../utils/utils.rkt" syntax-length) (for-template racket/base "ann-inst.rkt")) ;; Lazily loaded b/c they're only used sometimes, so we save a lot diff --git a/typed-racket-lib/typed-racket/base-env/prims-struct.rkt b/typed-racket-lib/typed-racket/base-env/prims-struct.rkt index 49037590..4d178355 100644 --- a/typed-racket-lib/typed-racket/base-env/prims-struct.rkt +++ b/typed-racket-lib/typed-racket/base-env/prims-struct.rkt @@ -18,7 +18,6 @@ syntax/stx racket/list racket/syntax - unstable/syntax racket/struct-info "../typecheck/internal-forms.rkt" "annotate-classes.rkt" diff --git a/typed-racket-lib/typed-racket/base-env/prims.rkt b/typed-racket-lib/typed-racket/base-env/prims.rkt index 6cd6f35f..4451ad77 100644 --- a/typed-racket-lib/typed-racket/base-env/prims.rkt +++ b/typed-racket-lib/typed-racket/base-env/prims.rkt @@ -124,7 +124,6 @@ the typed racket language. syntax/stx racket/list racket/syntax - unstable/syntax racket/base (only-in "../typecheck/internal-forms.rkt" internal) "annotate-classes.rkt" diff --git a/typed-racket-lib/typed-racket/typecheck/tc-app/tc-app-hetero.rkt b/typed-racket-lib/typed-racket/typecheck/tc-app/tc-app-hetero.rkt index 15ee5b0c..38216dfa 100644 --- a/typed-racket-lib/typed-racket/typecheck/tc-app/tc-app-hetero.rkt +++ b/typed-racket-lib/typed-racket/typecheck/tc-app/tc-app-hetero.rkt @@ -1,7 +1,7 @@ #lang racket/unit (require "../../utils/utils.rkt" - syntax/parse syntax/stx racket/match unstable/sequence unstable/syntax + syntax/parse syntax/stx racket/match unstable/sequence "signatures.rkt" "utils.rkt" (types utils abbrev numeric-tower union resolve type-table generalize) diff --git a/typed-racket-lib/typed-racket/typecheck/tc-app/tc-app-lambda.rkt b/typed-racket-lib/typed-racket/typecheck/tc-app/tc-app-lambda.rkt index fdd0a64f..8accd250 100644 --- a/typed-racket-lib/typed-racket/typecheck/tc-app/tc-app-lambda.rkt +++ b/typed-racket-lib/typed-racket/typecheck/tc-app/tc-app-lambda.rkt @@ -5,7 +5,7 @@ "utils.rkt" (prefix-in - (contract-req)) syntax/parse racket/match racket/list - unstable/sequence unstable/syntax + unstable/sequence (typecheck signatures find-annotation) (types abbrev utils generalize type-table) (private type-annotation syntax-properties) diff --git a/typed-racket-lib/typed-racket/typecheck/tc-app/tc-app-values.rkt b/typed-racket-lib/typed-racket/typecheck/tc-app/tc-app-values.rkt index b9866bc0..6247bcd4 100644 --- a/typed-racket-lib/typed-racket/typecheck/tc-app/tc-app-values.rkt +++ b/typed-racket-lib/typed-racket/typecheck/tc-app/tc-app-values.rkt @@ -3,7 +3,7 @@ (require "../../utils/utils.rkt" "signatures.rkt" "utils.rkt" - syntax/parse racket/match unstable/sequence unstable/syntax + syntax/parse racket/match unstable/sequence (typecheck signatures tc-funapp) (types utils) diff --git a/typed-racket-lib/typed-racket/typecheck/tc-expression.rkt b/typed-racket-lib/typed-racket/typecheck/tc-expression.rkt index f1bd7369..b7227218 100644 --- a/typed-racket-lib/typed-racket/typecheck/tc-expression.rkt +++ b/typed-racket-lib/typed-racket/typecheck/tc-expression.rkt @@ -8,7 +8,6 @@ (utils tc-utils) (env index-env tvar-env scoped-tvar-env) (private syntax-properties parse-type) - unstable/syntax racket/format racket/match syntax/stx diff --git a/typed-racket-lib/typed-racket/utils/utils.rkt b/typed-racket-lib/typed-racket/utils/utils.rkt index adcfe206..7e037ffe 100644 --- a/typed-racket-lib/typed-racket/utils/utils.rkt +++ b/typed-racket-lib/typed-racket/utils/utils.rkt @@ -18,7 +18,8 @@ at least theoretically. rep utils typecheck infer env private types static-contracts ;; misc list-extend - filter-multiple) + filter-multiple + syntax-length) (define optimize? (make-parameter #t)) (define-for-syntax enable-contracts? (and (getenv "PLT_TR_CONTRACTS") #t)) @@ -208,3 +209,7 @@ at least theoretically. (define (filter-multiple l . fs) (apply values (map (lambda (f) (filter f l)) fs))) + +(define (syntax-length stx) + (let ((list (syntax->list stx))) + (and list (length list))))