Remove dotted-env.
This commit is contained in:
parent
f7b59f78e9
commit
a9c34dae6a
16
collects/typed-scheme/env/dotted-env.rkt
vendored
16
collects/typed-scheme/env/dotted-env.rkt
vendored
|
@ -1,16 +0,0 @@
|
|||
#lang racket/base
|
||||
|
||||
(require "type-env-structs.rkt" syntax/id-table)
|
||||
(provide (all-defined-out))
|
||||
|
||||
;; this environment maps lexical identifiers to pairs of types and bounds
|
||||
;; bounds are type variables which must be bound with ...
|
||||
;; bounds are represented as symbols
|
||||
|
||||
;; the environment for types of ... variables
|
||||
(define dotted-env (make-parameter (make-empty-env (make-immutable-free-id-table))))
|
||||
|
||||
;; run code in an extended dotted env
|
||||
(define-syntax with-dotted-env/extend
|
||||
(syntax-rules ()
|
||||
[(_ i t v . b) (parameterize ([dotted-env (extend (dotted-env) i (cons t v))]) . b)]))
|
10
collects/typed-scheme/env/lexical-env.rkt
vendored
10
collects/typed-scheme/env/lexical-env.rkt
vendored
|
@ -9,7 +9,6 @@
|
|||
(require "../utils/utils.rkt"
|
||||
"type-env-structs.rkt"
|
||||
"global-env.rkt"
|
||||
"dotted-env.rkt"
|
||||
unstable/mutated-vars syntax/id-table
|
||||
(only-in scheme/contract ->* -> or/c any/c listof cons/c)
|
||||
(utils tc-utils)
|
||||
|
@ -41,14 +40,7 @@
|
|||
;; find the type of identifier i, looking first in the lexical env, then in the top-level env
|
||||
;; identifer -> Type
|
||||
(define (lookup-type/lexical i [env (lexical-env)] #:fail [fail #f])
|
||||
(lookup env i
|
||||
(lambda (i) (lookup-type
|
||||
i (lambda ()
|
||||
(cond [(lookup (dotted-env) i (lambda _ #f))
|
||||
=>
|
||||
(lambda (a)
|
||||
(-lst (substitute Univ (cdr a) (car a))))]
|
||||
[else ((or fail lookup-fail) i)]))))))
|
||||
(lookup env i (λ (i) (lookup-type i (λ () ((or fail lookup-fail) i))))))
|
||||
|
||||
;; refine the type of i in the lexical env
|
||||
;; (identifier type -> type) identifier -> environment
|
||||
|
|
Loading…
Reference in New Issue
Block a user