From d7ae7dbdd8b0e81bb9a95fbba5c28d0ac25f17bb Mon Sep 17 00:00:00 2001 From: Daniel Feltey Date: Thu, 29 Oct 2015 01:35:33 -0500 Subject: [PATCH] Fix incorrect serialization of signature environment Closes #229 --- typed-racket-lib/typed-racket/env/init-envs.rkt | 3 ++- .../succeed/require-signature-all-typed.rkt | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 typed-racket-test/succeed/require-signature-all-typed.rkt diff --git a/typed-racket-lib/typed-racket/env/init-envs.rkt b/typed-racket-lib/typed-racket/env/init-envs.rkt index 7c9f66d9..a0cc6d8e 100644 --- a/typed-racket-lib/typed-racket/env/init-envs.rkt +++ b/typed-racket-lib/typed-racket/env/init-envs.rkt @@ -127,8 +127,9 @@ (define ty (force (cdr id/ty))) `(cons (quote-syntax ,id) ,(sub ty))) m)) + (define serialized-extends (and extends `(quote-syntax ,extends))) `(make-Signature (quote-syntax ,name) - (quote-syntax ,extends) + ,serialized-extends (list ,@(serialize-mapping mapping)))] [(arr: dom rng rest drest kws) `(make-arr ,(sub dom) ,(sub rng) ,(sub rest) ,(sub drest) ,(sub kws))] diff --git a/typed-racket-test/succeed/require-signature-all-typed.rkt b/typed-racket-test/succeed/require-signature-all-typed.rkt new file mode 100644 index 00000000..5ff5fd81 --- /dev/null +++ b/typed-racket-test/succeed/require-signature-all-typed.rkt @@ -0,0 +1,14 @@ +#lang typed/racket + +(module a typed/racket + (provide foo^) + + (define-signature foo^ + ([n : Number]))) + +(require 'a) + +(define-unit foo@ + (import) + (export foo^) + (define n 5)) \ No newline at end of file