From adffd4a0b71b5f6a7e0e604205d3de5216c4025c Mon Sep 17 00:00:00 2001 From: pfdietz <pfdietz@localhost> Date: Fri, 1 Jul 2005 03:32:03 +0000 Subject: [PATCH] More lambda tests, of uninterned symbols as lambda variables and a test of possible problems with &aux variable declarations. Also, add ignore/ignorable declarations to suppress warnings in several tests. --- ansi-tests/lambda.lsp | 45 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/ansi-tests/lambda.lsp b/ansi-tests/lambda.lsp index a93850c7..d1681d5b 100644 --- a/ansi-tests/lambda.lsp +++ b/ansi-tests/lambda.lsp @@ -42,7 +42,7 @@ "bar") (deftest lambda.10 - ((lambda (x) (declare (type symbol x))) 'z) + ((lambda (x) (declare (type symbol x) (ignorable x))) 'z) nil) (deftest lambda.11 @@ -185,17 +185,20 @@ (deftest lambda.39 (let ((a-p :bad)) + (declare (ignorable a-p)) ((lambda (&key (a nil a-p) (b a-p)) (list a (notnot a-p) (notnot b))))) (nil nil nil)) (deftest lambda.40 (let ((a-p :bad)) + (declare (ignorable a-p)) ((lambda (&key (a nil a-p) (b a-p)) (list a (notnot a-p) (notnot b))) :a 1)) (1 t t)) (deftest lambda.41 (let ((a-p :bad)) + (declare (ignorable a-p)) ((lambda (&key (a nil a-p) (b a-p)) (list a (notnot a-p) (notnot b))) :a nil)) (nil t t)) @@ -293,6 +296,46 @@ "LMB56" "LMB56") +;;; Uninterned symbols as lambda variables + +(deftest lambda.57 + ((lambda (#1=#:foo) #1#) 17) + 17) + +(deftest lambda.58 + ((lambda (&rest #1=#:foo) #1#) 'a 'b 'c) + (a b c)) + +(deftest lambda.59 + ((lambda (&optional #1=#:foo) #1#)) + nil) + +(deftest lambda.60 + ((lambda (&optional (#1=#:foo t)) #1#)) + t) + +(deftest lambda.61 + ((lambda (&optional (#1=#:foo t)) #1#) 'bar) + bar) + +(deftest lambda.62 + ((lambda (&key #1=#:foo) #1#) :foo 12) + 12) + +;;; Test that declarations for aux variables are handled properly + +(deftest lambda.63 + (let ((y :bad1)) + (declare (ignore y)) + (let ((y :bad2)) + (declare (special y)) + (flet ((%f () y)) + ((lambda (x &aux (y :good)) + (declare (special y) (ignore x)) + (%f)) + nil)))) + :good) + ;;; Tests of lambda as a macro (deftest lambda.macro.1 -- GitLab