cs: repair application of parameter guard as an applicable struct
Closes #3865
This commit is contained in:
parent
f31c7172c5
commit
cb959879de
|
@ -73,6 +73,12 @@
|
||||||
(add1 'x)))))
|
(add1 'x)))))
|
||||||
(define test-param3 (make-parameter 'three list))
|
(define test-param3 (make-parameter 'three list))
|
||||||
(define test-param4 (make-derived-parameter test-param3 box list))
|
(define test-param4 (make-derived-parameter test-param3 box list))
|
||||||
|
(define test-param5 (make-parameter
|
||||||
|
'five
|
||||||
|
(let ()
|
||||||
|
(struct s (x)
|
||||||
|
#:property prop:procedure 0)
|
||||||
|
(s (lambda (x) x)))))
|
||||||
|
|
||||||
(test 'one test-param1)
|
(test 'one test-param1)
|
||||||
(test 'two test-param2)
|
(test 'two test-param2)
|
||||||
|
@ -127,6 +133,10 @@
|
||||||
(test '(#&yet-another-three) test-param3)
|
(test '(#&yet-another-three) test-param3)
|
||||||
(test '((#&yet-another-three)) test-param4))
|
(test '((#&yet-another-three)) test-param4))
|
||||||
|
|
||||||
|
(test 'five test-param5)
|
||||||
|
(test (void) test-param5 5)
|
||||||
|
(test 5 test-param5)
|
||||||
|
|
||||||
(let ([cd (make-derived-parameter current-directory values values)])
|
(let ([cd (make-derived-parameter current-directory values values)])
|
||||||
(test (current-directory) cd)
|
(test (current-directory) cd)
|
||||||
(let* ([v (current-directory)]
|
(let* ([v (current-directory)]
|
||||||
|
|
|
@ -101,7 +101,7 @@
|
||||||
(let ([c (or (parameter-cell data)
|
(let ([c (or (parameter-cell data)
|
||||||
default-c)])
|
default-c)])
|
||||||
(thread-cell-set! c (if guard
|
(thread-cell-set! c (if guard
|
||||||
(guard v)
|
(|#%app| guard v)
|
||||||
v)))])
|
v)))])
|
||||||
3
|
3
|
||||||
data))]))
|
data))]))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user