From 3bbf39b86a9050b3e6e9c656d6901629c321cbc5 Mon Sep 17 00:00:00 2001 From: Vincent St-Amour Date: Wed, 26 May 2010 18:08:40 -0400 Subject: [PATCH] Rewrote do: to expand into do. original commit: 23f30af459b4157c87b62dff535cdd0b7eb46927 --- collects/typed-scheme/private/prims.rkt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/collects/typed-scheme/private/prims.rkt b/collects/typed-scheme/private/prims.rkt index a0bac01d..be310b68 100644 --- a/collects/typed-scheme/private/prims.rkt +++ b/collects/typed-scheme/private/prims.rkt @@ -368,15 +368,15 @@ This file defines two sorts of primitives. All of them are provided into any mod (define-syntax (do: stx) (syntax-parse stx #:literals (:) [(_ : ty - ((var:annotated-name init (~optional step:expr #:defaults ([step #'var]))) ...) - (stop?:expr (~optional (~seq finish0:expr finish:expr ...) #:defaults ([finish0 #'(void)] [(finish 1) '()]))) + ((var:annotated-name rest ...) ...) + (stop?:expr ret ...) c:expr ...) (syntax/loc stx - (let: doloop : ty ([var.name : var.ty init] ...) - (if stop? - (begin finish0 finish ...) - (begin c ... (doloop step ...)))))])) + (ann (do ((var.ann-name rest ...) ...) + (stop? ret ...) + c ...) + ty))])) (define-syntax (provide: stx) (syntax-parse stx