26 lines
535 B
Racket
26 lines
535 B
Racket
#lang racket/load
|
|
(module a racket
|
|
(define memory%
|
|
(class object%
|
|
(super-new)
|
|
(define/public (malloc) 1)
|
|
(define/public (free n) (void))))
|
|
|
|
(provide/contract
|
|
[memory%
|
|
(class/c [malloc (->m number?)]
|
|
[free (->m number? void)])]))
|
|
|
|
(module b racket
|
|
(require 'a tests/eli-tester)
|
|
|
|
(define memory (new memory%))
|
|
|
|
(define a (send memory malloc))
|
|
(test
|
|
(send memory free a)
|
|
(send memory free "foo") =error> #rx"expected: number\\?"
|
|
(send memory free a)))
|
|
|
|
(require 'b)
|