mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-11 22:31:12 +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:
parent
de41e56492
commit
adf91e1cc5
1 changed files with 37 additions and 1 deletions
|
@ -825,7 +825,43 @@
|
||||||
(define a (@@ (top-level-define/module-scoping-3) a))
|
(define a (@@ (top-level-define/module-scoping-3) a))
|
||||||
a)
|
a)
|
||||||
(current-module))
|
(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"
|
(with-test-prefix "internal define"
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue