31 lines
599 B
Racket
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)
|