emacs.d/elpa/racket-mode-20200218.1623/racket/test/find-examples.rkt
2020-02-22 12:54:34 +01:00

55 lines
1.3 KiB
Racket

#lang racket/base
(require racket/contract)
;; Examples for test/defn.rkt.
(define (plain x) x)
(provide plain)
(provide (rename-out [plain renamed]))
(define (contracted1 x) x)
(provide (contract-out [contracted1 (-> any/c any)]))
(define (contracted2 x) x)
(provide/contract [contracted2 (-> any/c any)])
(define (c/r x) x)
(provide (contract-out [rename c/r contracted/renamed (-> any/c any)]))
(define-syntax-rule (plain-definer name)
(begin
(define (name x) x)
(provide name)))
(plain-definer plain-by-macro)
(define-syntax-rule (contracted-definer name)
(begin
(define (name x) x)
(provide (contract-out [name (-> any/c any)]))))
(contracted-definer contracted-by-macro)
;; This is here to try to trip naive matching, by having a definition
;; of `sub` that is not actually provided, unlike the one in the `sub`
;; module just below.
(module red-herring racket/base
(define (sub) #f))
(module sub racket/base
(define (sub x) x)
(provide sub
(rename-out [sub sub/renamed])))
(require 'sub)
(provide sub sub/renamed)
;; Likewise, another case of naive matching:
(module red-herring-2 racket/base
(define (foo) #f))
(define (foo x) x)
(provide foo)
;; Issue 317
(define a-number 42)
(provide a-number)
(define a-parameter (make-parameter #f))
(provide a-parameter)