Ryan's patch to improve check-syntax arrows for syntax-pattern bindings

svn: r5744
This commit is contained in:
Matthew Flatt 2007-03-07 02:21:40 +00:00
parent 40f613d0d2
commit 109785e98a
3 changed files with 1660 additions and 1644 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1973,12 +1973,15 @@
"(r(let loop((vars unique-vars)(bindings var-bindings))" "(r(let loop((vars unique-vars)(bindings var-bindings))"
"(cond" "(cond"
"((null? bindings) null)" "((null? bindings) null)"
"((car bindings)(cons " "((car bindings)"
"(cons"
"(syntax-property "
"(datum->syntax-object" "(datum->syntax-object"
"(car vars)" "(car vars)"
"(syntax-e " "(syntax-e(syntax-mapping-valvar(car bindings)))"
"(syntax-mapping-valvar(car bindings)))"
" x)" " x)"
" 'disappeared-use"
"(car vars))"
"(loop(cdr vars)(cdr bindings))))" "(loop(cdr vars)(cdr bindings))))"
"(else(loop(cdr vars)(cdr bindings)))))))" "(else(loop(cdr vars)(cdr bindings)))))))"
"(if(identifier? pattern)" "(if(identifier? pattern)"

View File

@ -2286,13 +2286,16 @@
[r (let loop ([vars unique-vars][bindings var-bindings]) [r (let loop ([vars unique-vars][bindings var-bindings])
(cond (cond
[(null? bindings) null] [(null? bindings) null]
[(car bindings) (cons [(car bindings)
(datum->syntax-object (cons
(car vars) (syntax-property
(syntax-e (datum->syntax-object
(syntax-mapping-valvar (car bindings))) (car vars)
x) (syntax-e (syntax-mapping-valvar (car bindings)))
(loop (cdr vars) (cdr bindings)))] x)
'disappeared-use
(car vars))
(loop (cdr vars) (cdr bindings)))]
[else (loop (cdr vars) (cdr bindings))]))]) [else (loop (cdr vars) (cdr bindings))]))])
(if (identifier? pattern) (if (identifier? pattern)
;; Simple syntax-id lookup: ;; Simple syntax-id lookup: