typed-racket/typed-racket-test/succeed/class-contract.rkt
2015-02-27 13:37:07 -05:00

31 lines
599 B
Racket

#lang racket
;; Test class contract generation
(module t1 typed/racket
(define c%
(class object%
(super-new)
(: m (All (X) (-> X (Listof X))))
(define/public (m x) (list x))))
(provide c%))
(module u1 racket
(require (submod ".." t1))
(car (send (new c%) m 3)))
(module u2 racket
(define c%
(class object%
(super-new)
(define/public (m x) (list x))))
(provide c%))
(module t2 typed/racket
(require/typed (submod ".." u2)
[c% (Class [m (All (X) (-> X (Listof X)))])])
(car (send (new c%) m 3)))
(require 'u1)
(require 't2)