.
original commit: 90d899ba67f9398c0b92971a8a28959a9cd8a453
This commit is contained in:
parent
f68a6d0b7c
commit
bc23159364
|
@ -5,65 +5,65 @@
|
|||
(SECTION 'unit)
|
||||
(import (lib "unit.ss"))
|
||||
|
||||
(syntax-test '(unit))
|
||||
(syntax-test '(unit (import)))
|
||||
(syntax-test '(unit (impLort)))
|
||||
(syntax-test '(unit (impLort) (export) 5))
|
||||
(syntax-test '(unit (import) (expLort) 5))
|
||||
(syntax-test '(unit import (export) 5))
|
||||
(syntax-test '(unit (import) export 5))
|
||||
(syntax-test '(unit (import) (export) . 5))
|
||||
(syntax-test '(unit (import 8) (export) 5))
|
||||
(syntax-test '(unit (import . i) (export) 5))
|
||||
(syntax-test '(unit (import (i)) (export) 5))
|
||||
(syntax-test '(unit (import i 8) (export) 5))
|
||||
(syntax-test '(unit (import i . b) (export) 5))
|
||||
(syntax-test '(unit (import i (b)) (export) 5))
|
||||
(syntax-test '(unit (import i) (export 7) 5))
|
||||
(syntax-test '(unit (import i) (export . a) (define a 6)))
|
||||
(syntax-test '(unit (import i) (export a . b) (define a 5) (define b 6)))
|
||||
(syntax-test '(unit (import i) (export (a x) . b) (define a 5) (define b 6)))
|
||||
(syntax-test '(unit (import i) (export (a 8) b) (define a 5) (define b 6)))
|
||||
(syntax-test '(unit (import i) (export b (a 8)) (define a 5) (define b 6)))
|
||||
(syntax-test '(unit (import i) (export (a . x) b) (define a 5) (define b 6)))
|
||||
(syntax-test '(unit (import i) (export b (a . x)) (define a 5) (define b 6)))
|
||||
(syntax-test '(unit (import i) (export (a x y) b) (define a 5) (define b 6)))
|
||||
(syntax-test '(unit (import i) (export (a x . y) b) (define a 5) (define b 6)))
|
||||
(syntax-test '(unit (import i) (export b (a x . y)) (define a 5) (define b 6)))
|
||||
(syntax-test #'(unit))
|
||||
(syntax-test #'(unit (import)))
|
||||
(syntax-test #'(unit (impLort)))
|
||||
(syntax-test #'(unit (impLort) (export) 5))
|
||||
(syntax-test #'(unit (import) (expLort) 5))
|
||||
(syntax-test #'(unit import (export) 5))
|
||||
(syntax-test #'(unit (import) export 5))
|
||||
(syntax-test #'(unit (import) (export) . 5))
|
||||
(syntax-test #'(unit (import 8) (export) 5))
|
||||
(syntax-test #'(unit (import . i) (export) 5))
|
||||
(syntax-test #'(unit (import (i)) (export) 5))
|
||||
(syntax-test #'(unit (import i 8) (export) 5))
|
||||
(syntax-test #'(unit (import i . b) (export) 5))
|
||||
(syntax-test #'(unit (import i (b)) (export) 5))
|
||||
(syntax-test #'(unit (import i) (export 7) 5))
|
||||
(syntax-test #'(unit (import i) (export . a) (define a 6)))
|
||||
(syntax-test #'(unit (import i) (export a . b) (define a 5) (define b 6)))
|
||||
(syntax-test #'(unit (import i) (export (a x) . b) (define a 5) (define b 6)))
|
||||
(syntax-test #'(unit (import i) (export (a 8) b) (define a 5) (define b 6)))
|
||||
(syntax-test #'(unit (import i) (export b (a 8)) (define a 5) (define b 6)))
|
||||
(syntax-test #'(unit (import i) (export (a . x) b) (define a 5) (define b 6)))
|
||||
(syntax-test #'(unit (import i) (export b (a . x)) (define a 5) (define b 6)))
|
||||
(syntax-test #'(unit (import i) (export (a x y) b) (define a 5) (define b 6)))
|
||||
(syntax-test #'(unit (import i) (export (a x . y) b) (define a 5) (define b 6)))
|
||||
(syntax-test #'(unit (import i) (export b (a x . y)) (define a 5) (define b 6)))
|
||||
|
||||
(syntax-test '(unit (import i) (export) (begin 1 . 2)))
|
||||
(syntax-test '(unit (import i) (export b a) (begin (define a 5) (define b 6) . x)))
|
||||
(syntax-test '(unit (import i) (export b a) (begin (define a 5) (define b 6)) (define b 6)))
|
||||
(syntax-test #'(unit (import i) (export) (begin 1 . 2)))
|
||||
(syntax-test #'(unit (import i) (export b a) (begin (define a 5) (define b 6) . x)))
|
||||
(syntax-test #'(unit (import i) (export b a) (begin (define a 5) (define b 6)) (define b 6)))
|
||||
|
||||
(syntax-test '(unit (import) (export) (define-values (3) 5)))
|
||||
(syntax-test #'(unit (import) (export) (define-values (3) 5)))
|
||||
|
||||
(syntax-test '(unit (import a) (export (a x) b) (define a 5) (define b 6)))
|
||||
(syntax-test '(unit (import a) (export (a x) (a y)) (define a 5) (define b 6)))
|
||||
(syntax-test '(unit (import i a) (export (a x) b) (define a 5) (define b 6)))
|
||||
(syntax-test '(unit (import b) (export (a x) b) (define a 5) (define b 6)))
|
||||
(syntax-test '(unit (import i j i) (export (a x) b) (define a 5) (define b 6)))
|
||||
(syntax-test '(unit (import i j j) (export (a x) b) (define a 5) (define b 6)))
|
||||
(syntax-test '(unit (import i) (export a a) (define a 5) (define b 6)))
|
||||
(syntax-test '(unit (import i) (export (a x) (b x)) (define a 5) (define b 6)))
|
||||
(syntax-test '(unit (import i) (export (a x) b) (define a 5) (define a 6) (define b 6)))
|
||||
(syntax-test '(unit (import make-i) (export (a x) b) (define a 5) (define-struct i ()) (define b 6)))
|
||||
(syntax-test '(unit (import i) (export (make-a x) b) (define make-a 5) (define-struct a ()) (define b 6)))
|
||||
(syntax-test '(unit (import i) (export (a x) b) (define a 5) (define r 6) (define r 7) (define b 6)))
|
||||
(syntax-test #'(unit (import a) (export (a x) b) (define a 5) (define b 6)))
|
||||
(syntax-test #'(unit (import a) (export (a x) (a y)) (define a 5) (define b 6)))
|
||||
(syntax-test #'(unit (import i a) (export (a x) b) (define a 5) (define b 6)))
|
||||
(syntax-test #'(unit (import b) (export (a x) b) (define a 5) (define b 6)))
|
||||
(syntax-test #'(unit (import i j i) (export (a x) b) (define a 5) (define b 6)))
|
||||
(syntax-test #'(unit (import i j j) (export (a x) b) (define a 5) (define b 6)))
|
||||
(syntax-test #'(unit (import i) (export a a) (define a 5) (define b 6)))
|
||||
(syntax-test #'(unit (import i) (export (a x) (b x)) (define a 5) (define b 6)))
|
||||
(syntax-test #'(unit (import i) (export (a x) b) (define a 5) (define a 6) (define b 6)))
|
||||
(syntax-test #'(unit (import make-i) (export (a x) b) (define a 5) (define-struct i ()) (define b 6)))
|
||||
(syntax-test #'(unit (import i) (export (make-a x) b) (define make-a 5) (define-struct a ()) (define b 6)))
|
||||
(syntax-test #'(unit (import i) (export (a x) b) (define a 5) (define r 6) (define r 7) (define b 6)))
|
||||
|
||||
(syntax-test '(unit (import i) (export b (a x)) 5))
|
||||
(syntax-test '(unit (import i) (export (a x) b) (define x 5) (define b 6)))
|
||||
(syntax-test '(unit (import i) (export (a x) b) (set! a 5) (define b 6)))
|
||||
(syntax-test #'(unit (import i) (export b (a x)) 5))
|
||||
(syntax-test #'(unit (import i) (export (a x) b) (define x 5) (define b 6)))
|
||||
(syntax-test #'(unit (import i) (export (a x) b) (set! a 5) (define b 6)))
|
||||
|
||||
(syntax-test '(unit (import i) (export) (set! i 5)))
|
||||
(syntax-test #'(unit (import i) (export) (set! i 5)))
|
||||
|
||||
; Empty exports are syntactically ok::
|
||||
(error-test '(compound-unit (import) (link (A (0))) (export (A))) exn:unit?)
|
||||
(error-test '(compound-unit (import) (link (A (0 (B))) (B (0))) (export)) exn:unit?)
|
||||
(error-test '(compound-unit (import) (link (A (0)) (B (0))) (export (A x) (B))) exn:unit?)
|
||||
(error-test #'(compound-unit (import) (link (A (0))) (export (A))) exn:unit?)
|
||||
(error-test #'(compound-unit (import) (link (A (0 (B))) (B (0))) (export)) exn:unit?)
|
||||
(error-test #'(compound-unit (import) (link (A (0)) (B (0))) (export (A x) (B))) exn:unit?)
|
||||
|
||||
; Self-import is now allowed
|
||||
; (syntax-test '(compound-unit (import) (link (A (0 (A)))) (export)))
|
||||
; (syntax-test '(compound-unit (import) (link (A (0 (A x)))) (export)))
|
||||
; (syntax-test #'(compound-unit (import) (link (A (0 (A)))) (export)))
|
||||
; (syntax-test #'(compound-unit (import) (link (A (0 (A x)))) (export)))
|
||||
(test (list (letrec ([x x]) x) 5)
|
||||
'self-import
|
||||
(invoke-unit
|
||||
|
@ -73,7 +73,7 @@
|
|||
(U b))])
|
||||
(export))))
|
||||
|
||||
(error-test '(invoke-unit (unit (import not-defined) (export) 10) not-defined) exn:variable?)
|
||||
(error-test #'(invoke-unit (unit (import not-defined) (export) 10) not-defined) exn:variable?)
|
||||
|
||||
(test #t unit? (unit (import) (export)))
|
||||
(test #t unit? (unit (import) (export) 5))
|
||||
|
@ -96,39 +96,39 @@
|
|||
(test #t unit? (unit (import i) (export) (begin)))
|
||||
(test #t unit? (unit (import i) (export) (begin (begin))))
|
||||
|
||||
(syntax-test '(compound-unit))
|
||||
(syntax-test '(compound-unit . x))
|
||||
(syntax-test '(compound-unit (import)))
|
||||
(syntax-test '(compound-unit (import) . x))
|
||||
(syntax-test '(compound-unit (import) (link)))
|
||||
(syntax-test '(compound-unit (import) (link) . x))
|
||||
(syntax-test '(compound-unit import (link) (export)))
|
||||
(syntax-test '(compound-unit (import) link (export)))
|
||||
(syntax-test '(compound-unit (import) (link) export))
|
||||
(syntax-test '(compound-unit ((import)) (link) (export)))
|
||||
(syntax-test '(compound-unit (import) ((link)) (export)))
|
||||
(syntax-test '(compound-unit (import) (link) ((export))))
|
||||
(syntax-test '(compound-unit (import . a) (link) (export)))
|
||||
(syntax-test '(compound-unit (import b . a) (link) (export)))
|
||||
(syntax-test '(compound-unit (import 1) (link) (export)))
|
||||
(syntax-test '(compound-unit (import (a)) (link) (export)))
|
||||
(syntax-test '(compound-unit (import (a . b)) (link) (export)))
|
||||
(syntax-test '(compound-unit (import (a (b))) (link) (export)))
|
||||
(syntax-test '(compound-unit (import ((a) b)) (link) (export)))
|
||||
(syntax-test '(compound-unit (import) (link . a) (export)))
|
||||
(syntax-test '(compound-unit (import) (link a) (export)))
|
||||
(syntax-test '(compound-unit (import) (link (a)) (export)))
|
||||
(syntax-test '(compound-unit (import) (link (a (b)) . c) (export)))
|
||||
(syntax-test '(compound-unit (import) (link (a (b) . c)) (export)))
|
||||
(syntax-test '(compound-unit (import) (link (a (b . c)) (c (d))) (export)))
|
||||
(syntax-test '(compound-unit (import) (link (a (b c . e)) (c (d)) (e (f))) (export)))
|
||||
(syntax-test '(compound-unit (import) (link (a (b 1))) (export)))
|
||||
(syntax-test '(compound-unit (import) (link (a (b))) (export . a)))
|
||||
(syntax-test '(compound-unit (import) (link (a (b))) (export a)))
|
||||
(syntax-test '(compound-unit (import) (link (a (b))) (export (a w) . a)))
|
||||
(syntax-test '(compound-unit (import) (link (a (b))) (export (a 1))))
|
||||
(syntax-test '(compound-unit (import) (link (a (b))) (export (a (x)))))
|
||||
(syntax-test '(compound-unit (import) (link (a (b))) (export (1 w))))
|
||||
(syntax-test #'(compound-unit))
|
||||
(syntax-test #'(compound-unit . x))
|
||||
(syntax-test #'(compound-unit (import)))
|
||||
(syntax-test #'(compound-unit (import) . x))
|
||||
(syntax-test #'(compound-unit (import) (link)))
|
||||
(syntax-test #'(compound-unit (import) (link) . x))
|
||||
(syntax-test #'(compound-unit import (link) (export)))
|
||||
(syntax-test #'(compound-unit (import) link (export)))
|
||||
(syntax-test #'(compound-unit (import) (link) export))
|
||||
(syntax-test #'(compound-unit ((import)) (link) (export)))
|
||||
(syntax-test #'(compound-unit (import) ((link)) (export)))
|
||||
(syntax-test #'(compound-unit (import) (link) ((export))))
|
||||
(syntax-test #'(compound-unit (import . a) (link) (export)))
|
||||
(syntax-test #'(compound-unit (import b . a) (link) (export)))
|
||||
(syntax-test #'(compound-unit (import 1) (link) (export)))
|
||||
(syntax-test #'(compound-unit (import (a)) (link) (export)))
|
||||
(syntax-test #'(compound-unit (import (a . b)) (link) (export)))
|
||||
(syntax-test #'(compound-unit (import (a (b))) (link) (export)))
|
||||
(syntax-test #'(compound-unit (import ((a) b)) (link) (export)))
|
||||
(syntax-test #'(compound-unit (import) (link . a) (export)))
|
||||
(syntax-test #'(compound-unit (import) (link a) (export)))
|
||||
(syntax-test #'(compound-unit (import) (link (a)) (export)))
|
||||
(syntax-test #'(compound-unit (import) (link (a (b)) . c) (export)))
|
||||
(syntax-test #'(compound-unit (import) (link (a (b) . c)) (export)))
|
||||
(syntax-test #'(compound-unit (import) (link (a (b . c)) (c (d))) (export)))
|
||||
(syntax-test #'(compound-unit (import) (link (a (b c . e)) (c (d)) (e (f))) (export)))
|
||||
(syntax-test #'(compound-unit (import) (link (a (b 1))) (export)))
|
||||
(syntax-test #'(compound-unit (import) (link (a (b))) (export . a)))
|
||||
(syntax-test #'(compound-unit (import) (link (a (b))) (export a)))
|
||||
(syntax-test #'(compound-unit (import) (link (a (b))) (export (a w) . a)))
|
||||
(syntax-test #'(compound-unit (import) (link (a (b))) (export (a 1))))
|
||||
(syntax-test #'(compound-unit (import) (link (a (b))) (export (a (x)))))
|
||||
(syntax-test #'(compound-unit (import) (link (a (b))) (export (1 w))))
|
||||
|
||||
|
||||
; Simple:
|
||||
|
@ -351,17 +351,17 @@
|
|||
(test (letrec ([x y][y 0]) x) 'invoke
|
||||
(invoke-unit (unit (import) (export) (define x y) (define y 7) x)))
|
||||
|
||||
; Can't shadow syntax/macros in unit
|
||||
(syntax-test '(unit
|
||||
(import)
|
||||
(export)
|
||||
(define define 10)))
|
||||
(syntax-test '(unit
|
||||
(import)
|
||||
(export)
|
||||
(define lambda 10)))
|
||||
; Can shadow syntax/macros in unit
|
||||
(test #t unit? (unit
|
||||
(import)
|
||||
(export)
|
||||
(define define 10)))
|
||||
(test #t unit? (unit
|
||||
(import)
|
||||
(export)
|
||||
(define lambda 10)))
|
||||
|
||||
; Shadowing ok if it's in the export list:
|
||||
; Shadowing also ok if it's in the export list:
|
||||
(test #t unit? (unit
|
||||
(import)
|
||||
(export define-values)
|
||||
|
@ -408,7 +408,7 @@
|
|||
[x 10])
|
||||
(sequence
|
||||
(set! x 5)))))
|
||||
(syntax-test '(let ([x 10])
|
||||
(syntax-test #'(let ([x 10])
|
||||
(unit
|
||||
(import x)
|
||||
(export)
|
||||
|
@ -504,7 +504,7 @@
|
|||
|
||||
; Not ok if defining an imported name, but error should be about
|
||||
; redefining an imported name. (This behavior is not actually tested.)
|
||||
(syntax-test '(unit
|
||||
(syntax-test #'(unit
|
||||
(import define-values)
|
||||
(export)
|
||||
(define define-values 10)))
|
||||
|
|
Loading…
Reference in New Issue
Block a user