From b9408e545eb72e2ef4877cd3e9909f4937ebf536 Mon Sep 17 00:00:00 2001 From: Eric Dobson Date: Wed, 8 Aug 2012 21:12:12 -0700 Subject: [PATCH] Wrap generated code in #%expression. This allows tc-toplevel to hand it off to tc-expr, and not reimplement the details of annotations. --- collects/typed-racket/base-env/prims.rkt | 25 ++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/collects/typed-racket/base-env/prims.rkt b/collects/typed-racket/base-env/prims.rkt index 70205d1f35..d5043019e1 100644 --- a/collects/typed-racket/base-env/prims.rkt +++ b/collects/typed-racket/base-env/prims.rkt @@ -234,18 +234,19 @@ This file defines two sorts of primitives. All of them are provided into any mod (syntax-parse stx [(_ v:expr ty:expr) (define (apply-contract ctc-expr) - #`(ann - #,(syntax-property - #`(let-values (((val) #,(syntax-property #'(ann v Any) 'with-type #t))) - (contract - #,ctc-expr - val - 'cast - 'typed-world - val - (quote-syntax #,stx))) - 'typechecker:ignore-some #t) - ty)) + #`(#%expression + (ann + #,(syntax-property + #`(let-values (((val) #,(syntax-property #'(ann v Any) 'with-type #t))) + (contract + #,ctc-expr + val + 'cast + 'typed-world + val + (quote-syntax #,stx))) + 'typechecker:ignore-some #t) + ty))) (if (syntax-transforming-module-expression?) (let ((ctc (syntax-local-lift-expression