From 764696752de73a23310f7016ce5198bc61b92a6a Mon Sep 17 00:00:00 2001 From: Daniel Feltey Date: Thu, 27 Apr 2017 17:46:23 -0500 Subject: [PATCH] Disarm syntax in typed unit macros Closes #536 --- .../typed-racket/base-env/unit-prims.rkt | 4 ++-- .../succeed/unit-syntax-rule-with-annotation.rkt | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 typed-racket-test/succeed/unit-syntax-rule-with-annotation.rkt diff --git a/typed-racket-lib/typed-racket/base-env/unit-prims.rkt b/typed-racket-lib/typed-racket/base-env/unit-prims.rkt index 89a70c3d..f99aeb0f 100644 --- a/typed-racket-lib/typed-racket/base-env/unit-prims.rkt +++ b/typed-racket-lib/typed-racket/base-env/unit-prims.rkt @@ -32,7 +32,7 @@ syntax/id-table racket/unit-exptime syntax/strip-context - (utils tc-utils) + (utils tc-utils disarm) syntax/id-table syntax/id-set) (prefix-in untyped- (only-in racket/unit @@ -313,7 +313,7 @@ (syntax-parse stx [(_ e) (define exp-e (local-expand #'e (syntax-local-context) (kernel-form-identifier-list))) - (syntax-parse exp-e + (syntax-parse (disarm* exp-e) #:literals (begin define-values define-syntaxes :) [(begin b ...) #'(add-tags b ...)] diff --git a/typed-racket-test/succeed/unit-syntax-rule-with-annotation.rkt b/typed-racket-test/succeed/unit-syntax-rule-with-annotation.rkt new file mode 100644 index 00000000..772e08f4 --- /dev/null +++ b/typed-racket-test/succeed/unit-syntax-rule-with-annotation.rkt @@ -0,0 +1,14 @@ +#lang typed/racket/base + +(require typed/racket/unit) + +(define-syntax-rule (define* form ...) (define form ...)) + +(define-signature sig^ + ([id : (Any → Any)])) + +(define-unit sig@ + (import) + (export sig^) + + (define* (id [x : Any]) : Any x)) \ No newline at end of file