1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-10 05:50:26 +02:00

add tests for hygienic name introduction

* test-suite/tests/syntax.test ("top-level define"): Add tests for
  hygienic introduction of names.
This commit is contained in:
Andy Wingo 2011-11-07 11:47:26 +01:00
parent de41e56492
commit adf91e1cc5

View file

@ -825,7 +825,43 @@
(define a (@@ (top-level-define/module-scoping-3) a))
a)
(current-module))
10)))
10))
(pass-if "module scoping, introduced names"
(equal?
(eval
'(begin
(define-module (top-level-define/module-scoping-5)
#:export (define-constant))
(define-syntax-rule (define-constant name val)
(begin
(define t val)
(define (name) t)))
(define-module (top-level-define/module-scoping-6)
#:use-module (top-level-define/module-scoping-5))
(define-constant foo 10)
(define-constant bar 20)
(foo))
(current-module))
10))
(pass-if "module scoping, duplicate introduced name"
(equal?
(eval
'(begin
(define-module (top-level-define/module-scoping-7)
#:export (define-constant))
(define-syntax-rule (define-constant name val)
(begin
(define t val)
(define (name) t)))
(define-module (top-level-define/module-scoping-8)
#:use-module (top-level-define/module-scoping-7))
(define-constant foo 10)
(define-constant foo 20)
(foo))
(current-module))
20)))
(with-test-prefix "internal define"