Fix contract generation for mutable structures.
original commit: de96643fbe9e50b9554805b2aec199b8bc38962a
This commit is contained in:
parent
bb3f8c1885
commit
2e802bc3bc
|
@ -0,0 +1,14 @@
|
|||
#lang racket/load
|
||||
|
||||
(module promise typed/racket/base
|
||||
(require (for-syntax racket/base))
|
||||
(provide MyPromise)
|
||||
(define-struct: (a) MyPromise ([thunk : (-> a)])
|
||||
#:mutable))
|
||||
|
||||
(module user racket/base
|
||||
(require 'promise)
|
||||
(MyPromise (lambda () #f)))
|
||||
|
||||
|
||||
(require 'user)
|
|
@ -142,9 +142,9 @@
|
|||
(let loop ([ty ty] [typed-side (if typed-side 'typed 'untyped)] [structs-seen null] [kind kind])
|
||||
(define (t->c t #:seen [structs-seen structs-seen] #:kind [kind kind])
|
||||
(loop t typed-side structs-seen kind))
|
||||
(define (t->c/neg t #:seen [structs-seen structs-seen] #:flat [kind kind])
|
||||
(define (t->c/neg t #:seen [structs-seen structs-seen] #:kind [kind kind])
|
||||
(loop t (flip-side typed-side) structs-seen kind))
|
||||
(define (t->c/both t #:seen [structs-seen structs-seen] #:flat [kind kind])
|
||||
(define (t->c/both t #:seen [structs-seen structs-seen] #:kind [kind kind])
|
||||
(loop t 'both structs-seen kind))
|
||||
(define (t->c/fun f #:method [method? #f])
|
||||
(match f
|
||||
|
|
Loading…
Reference in New Issue
Block a user