diff --git a/ansi-tests/flet.lsp b/ansi-tests/flet.lsp index a7817598bd5f418d7142d8aae7f801ec6cd8123d..077b8a18ab637dc57593acfc2fc7c1bd44ce63f7 100644 --- a/ansi-tests/flet.lsp +++ b/ansi-tests/flet.lsp @@ -559,4 +559,27 @@ (%f))) :good) +;;; local function bindings shadow global functions, macros +;;; and compiler-macros +(defun flet.72 () :bad) + +(deftest flet.72 + (flet ((flet.72 () :good)) + (flet.72)) + :good) + +(defmacro flet.73 () :bad) + +(deftest flet.73 + (flet ((flet.73 () :good)) + (flet.73)) + :good) + +(define-compiler-macro flet.74 (&whole form) + :bad) + +(deftest flet.74 + (flet ((flet.74 () :good)) + (flet.74)) + :good) diff --git a/ansi-tests/labels.lsp b/ansi-tests/labels.lsp index f74af2540b5a06bf9aa100cac2ca959e41b4653e..8c8a87a3a00fb725769d2647c8e73ba74b86caa2 100644 --- a/ansi-tests/labels.lsp +++ b/ansi-tests/labels.lsp @@ -404,3 +404,34 @@ (labels ((%f () (expand-in-current-env (%m :good)))) (%f))) :good) + + +;;; local function bindings shadow global functions, macros +;;; and compiler-macros + + + +(defun labels.50 () :bad) + + +(deftest labels.50 + (labels ((labels.50 () :good)) + (labels.50)) + :good) + +(defmacro labels.51 () :bad) + +(deftest labels.51 + (labels ((labels.51 () :good)) + (labels.51)) + :good) + +(define-compiler-macro labels.52 (&whole form) + :bad) + +(deftest labels.52 + (labels ((labels.52 () :good)) + (labels.52)) + :good) + + \ No newline at end of file diff --git a/ansi-tests/macrolet.lsp b/ansi-tests/macrolet.lsp index 0e35225969da426e166a2077c04c7755527ac7dd..0fb2189beb748efe8a785adf577fe42a3278be2f 100644 --- a/ansi-tests/macrolet.lsp +++ b/ansi-tests/macrolet.lsp @@ -346,6 +346,7 @@ (%f))) :good) + ;;; The &environment parameter is bound first (deftest macrolet.38 @@ -443,3 +444,29 @@ ;;; TODO: more special declarations for other macrolet arguments + + +;;; macrolet shadows global macro, function and compiler-macro +;;; definitions + +(defmacro macrolet.50 () :bad) + +(deftest macrolet.50 + (macrolet ((macrolet.50 () :good)) + (macrolet.50)) + :good) + +(defun macrolet.51 () :bad) + +(deftest macrolet.51 + (macrolet ((macrolet.51 () :good)) + (macrolet.51)) + :good) + +(define-compiler-macro macrolet.52 (&whole form) + :bad) + +(deftest macrolet.52 + (macrolet ((macrolet.52 () :good)) + (macrolet.52)) + :good)