Merge rev 120 from Scheme 48 svn repo:
Modified: s48/tuebingen/trunk/scheme/rts/jar-defrecord.scm Log: Subject: Fix hygiene bug in DEFINE-RECORD-TYPE DEFINE-RECORD-TYPE would expand into the wrong thing if there was a field name identical to the name of the type that appears as a constructor argument; the constructor used that same name as a parameter, shadowing the name for the type. The fix was to rename those parameters before including them in the output.
This commit is contained in:
parent
e62510c4f1
commit
f28a5f7dbb
|
@ -46,9 +46,9 @@
|
||||||
(%unspecific (r 'unspecific))
|
(%unspecific (r 'unspecific))
|
||||||
(name (cadr e))
|
(name (cadr e))
|
||||||
(type (caddr e))
|
(type (caddr e))
|
||||||
(args (map car (cadddr e)))
|
(args (map r (map car (cadddr e))))
|
||||||
(arg-types (map cadr (cadddr e)))
|
(arg-types (map cadr (cadddr e)))
|
||||||
(fields (caddr (cddr e))))
|
(fields (map r (caddr (cddr e)))))
|
||||||
(define (mem? name list)
|
(define (mem? name list)
|
||||||
(cond ((null? list) #f)
|
(cond ((null? list) #f)
|
||||||
((c name (car list)) #t)
|
((c name (car list)) #t)
|
||||||
|
|
Loading…
Reference in New Issue