diff options
author | Julian Graham <julian.graham@aya.yale.edu> | 2010-11-21 15:35:44 -0500 |
---|---|---|
committer | Julian Graham <julian.graham@aya.yale.edu> | 2010-11-21 15:35:44 -0500 |
commit | 015a4aaedb9e8dd839b481bc83ac5b9f88e63a81 (patch) | |
tree | 65bed765fef9f1261539d1d2588af211d2fa16a6 /module/rnrs | |
parent | a653d32a8d02c90a426232de5b432e60fc33c1da (diff) | |
download | guile-015a4aaedb9e8dd839b481bc83ac5b9f88e63a81.tar.gz |
Enumeration set universe comparisons should be done with `equal?'
* module/rnrs/enums.scm (enum-set-union, enum-set-intersection,
enum-set-difference): Compare enum-set universes with `equal?' to support
sets generated using constructor syntax bound by `define-enumeration'.
* test-suite/tests/r6rs-enums.test (enum-set-union, enum-set-intersection,
enum-set-difference): New test cases for syntactically-generated sets.
Diffstat (limited to 'module/rnrs')
-rw-r--r-- | module/rnrs/enums.scm | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/module/rnrs/enums.scm b/module/rnrs/enums.scm index 79d341746..e97be46e3 100644 --- a/module/rnrs/enums.scm +++ b/module/rnrs/enums.scm @@ -82,8 +82,8 @@ (enum-set-subset? enum-set-2 enum-set-1))) (define (enum-set-union enum-set-1 enum-set-2) - (if (eq? (enum-set-universe enum-set-1) - (enum-set-universe enum-set-2)) + (if (equal? (enum-set-universe enum-set-1) + (enum-set-universe enum-set-2)) (make-enum-set (enum-set-universe enum-set-1) (lset-union eq? (enum-set-set enum-set-1) @@ -91,8 +91,8 @@ (raise (make-assertion-violation)))) (define (enum-set-intersection enum-set-1 enum-set-2) - (if (eq? (enum-set-universe enum-set-1) - (enum-set-universe enum-set-2)) + (if (equal? (enum-set-universe enum-set-1) + (enum-set-universe enum-set-2)) (make-enum-set (enum-set-universe enum-set-1) (lset-intersection eq? (enum-set-set enum-set-1) @@ -100,8 +100,8 @@ (raise (make-assertion-violation)))) (define (enum-set-difference enum-set-1 enum-set-2) - (if (eq? (enum-set-universe enum-set-1) - (enum-set-universe enum-set-2)) + (if (equal? (enum-set-universe enum-set-1) + (enum-set-universe enum-set-2)) (make-enum-set (enum-set-universe enum-set-1) (lset-difference eq? (enum-set-set enum-set-1) |