From 2819a62b309eb0bf2d3f52f1b13dea6475a7e445 Mon Sep 17 00:00:00 2001 From: Asumu Takikawa Date: Mon, 27 Jul 2015 17:15:54 -0400 Subject: [PATCH] Add types for new syntax operations --- typed-racket-lib/typed-racket/base-env/base-env.rkt | 6 ++++++ typed-racket-test/unit-tests/typecheck-tests.rkt | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/typed-racket-lib/typed-racket/base-env/base-env.rkt b/typed-racket-lib/typed-racket/base-env/base-env.rkt index 699f03ac..716b03e6 100644 --- a/typed-racket-lib/typed-racket/base-env/base-env.rkt +++ b/typed-racket-lib/typed-racket/base-env/base-env.rkt @@ -1638,6 +1638,10 @@ [internal-definition-context? (make-pred-ty -Internal-Definition-Context)] [syntax-local-make-definition-context (->opt [(-opt -Internal-Definition-Context)] -Internal-Definition-Context)] [syntax-local-bind-syntaxes (-> (-lst (-Syntax Sym)) (-opt (-Syntax Univ)) -Internal-Definition-Context -Void)] +[internal-definition-context-introduce + (-poly (a) (->opt -Internal-Definition-Context (-Syntax a) + [(one-of/c 'flip 'add 'remove)] + (-Syntax a)))] [internal-definition-context-seal (-> -Internal-Definition-Context -Void)] [identifier-remove-from-definition-context (-> (-Syntax Sym) (Un -Internal-Definition-Context (-lst -Internal-Definition-Context)) (-Syntax Sym))] @@ -1658,6 +1662,7 @@ [syntax-local-certifier (->opt [B] (-poly (a) (->opt (-Syntax a) [Univ (-opt (-poly (b) (-> (-Syntax b) (-Syntax b))))] (-Syntax a))))] [syntax-transforming? (-> B)] +[syntax-local-identifier-as-binding (-> (-Syntax -Symbol) (-Syntax -Symbol))] [syntax-local-introduce (-poly (a) (-> (-Syntax a) (-Syntax a)))] [make-syntax-introducer (-> (-poly (a) (-> (-Syntax a) (-Syntax a))))] [make-syntax-delta-introducer (->opt (-Syntax Univ) [(-opt (-Syntax Univ)) (-opt -Int)] (-poly (a) (-> (-Syntax a) (-Syntax a))))] @@ -1678,6 +1683,7 @@ ;; Section 12.8 [syntax-recertify (-poly (a) (-> (-Syntax a) (-Syntax Univ) -Inspector Univ (-Syntax a)))] +[syntax-debug-info (-poly (a) (->opt (-Syntax a) [(-opt -Integer) Univ] -HashTop))] ;; Section 12.9 [expand (-> Univ (-Syntax Univ))] diff --git a/typed-racket-test/unit-tests/typecheck-tests.rkt b/typed-racket-test/unit-tests/typecheck-tests.rkt index 2ce9a3a8..d6a8091d 100644 --- a/typed-racket-test/unit-tests/typecheck-tests.rkt +++ b/typed-racket-test/unit-tests/typecheck-tests.rkt @@ -1646,6 +1646,10 @@ (tc-e (syntax-column #'here) (-opt -Nat)) (tc-e (syntax-position #'here) (-opt -PosInt)) (tc-e (syntax-span #'here) (-opt -Nat)) + (tc-e (syntax-local-identifier-as-binding #'x) (-Syntax -Symbol)) + (tc-e (syntax-debug-info #'x) -HashTop) + (tc-e (internal-definition-context-introduce (syntax-local-make-definition-context) #'x) + (-Syntax (-val 'x))) ;Parameters