25 lines
980 B
Plaintext
25 lines
980 B
Plaintext
;;;; Simple test of supplied-p parameters
|
|
|
|
(do-test "supplied-p: funcitons"
|
|
(setf (symbol-function 'supplied-p-test)
|
|
'(lambda (&key (key 'init key-supplied))
|
|
(list key key-supplied)))
|
|
(and (equal (supplied-p-test) '(init nil))
|
|
(equal (supplied-p-test :key 'foo) '(foo t))
|
|
(compile 'supplied-p-test)
|
|
(equal (supplied-p-test) '(init nil))
|
|
(equal (supplied-p-test :key 'foo) '(foo t)))
|
|
)
|
|
|
|
(do-test "supplied-p: macros"
|
|
(defmacro supplied-p-test-m (&key (key 'init key-supplied))
|
|
`'(,key ,key-supplied))
|
|
(setf (symbol-function '|expand-SUPPLIED-P-TEST-M|)
|
|
(il:closure-function (symbol-function '|expand-SUPPLIED-P-TEST-M|)))
|
|
(and (equal (supplied-p-test-m) '(init nil))
|
|
(equal (supplied-p-test-m :key foo) '(foo t))
|
|
(compile '|expand-SUPPLIED-P-TEST-M|) ; This is implementation-dependent
|
|
(equal (supplied-p-test-m) '(init nil))
|
|
(equal (supplied-p-test-m :key foo) '(foo t)))
|
|
)
|