From 79d0c581d4e5aa9ef7de8bfc65a8998054819f8c Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Wed, 28 Jul 2010 10:17:31 -0500 Subject: [PATCH] moving machines --- collects/racket/contract/scratch.rkt | 59 ++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 collects/racket/contract/scratch.rkt diff --git a/collects/racket/contract/scratch.rkt b/collects/racket/contract/scratch.rkt new file mode 100644 index 0000000000..4467506496 --- /dev/null +++ b/collects/racket/contract/scratch.rkt @@ -0,0 +1,59 @@ +#lang racket/base +(require racket/contract) + +(->i (#:kwd1 [x number?] + #:kwd2 [y number?]) + #:rest [x any/c] + any) +;=> duplicate identifier 'x' + + +#| +test cases: + +(->i (#:kwd1 [x number?] + #:kwd2 [x number?]) + (values [y number?] + [z number?])) +=> duplicate identifier 'x' + + +(->i (#:kwd1 [w number?] + #:kwd1 [x number?]) + (values [y number?] + [z number?])) +=> duplicate keyword + + +(->i (#:kwd1 [w number?] + #:kwd2 [x number?]) + (values [y number?] + [w number?])) +=> duplicate variable 'w' + + +(->i (#:kwd1 [w number?] + #:kwd2 [x number?]) + (values [y number?] + [y number?])) +=> duplicate variable 'y' + + +(->i (#:kwd1 [w number?] + #:kwd2 [x number?]) + (values [y number?] + [w number?])) +=> duplicate identifier 'w' + +(let ([values (λ (x) x)]) + (->i (#:kwd1 [w number?] + #:kwd2 [x number?]) + (values number?))) +;=> no error(?) + +(->i (#:kwd1 [x number?] + #:kwd2 [y number?]) + [x number?]) +;=> duplicate identifier 'x' + +|#