summaryrefslogtreecommitdiff
path: root/test-suite/tests
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2012-10-08 11:56:10 -0400
committerMark H Weaver <mhw@netris.org>2012-10-08 11:56:10 -0400
commit75a5de18a0e6e34963cf0f5e0e20f528222e06af (patch)
tree512ef4d11db068e2b1cfbdd0885c43b89a6b602e /test-suite/tests
parentbcf87e35e17741c279b755b0804776cdc8ee5828 (diff)
downloadguile-75a5de18a0e6e34963cf0f5e0e20f528222e06af.tar.gz
Simplify calls to 'eqv?' when one argument is an immediate constant.
* module/language/tree-il/primitives.scm (maybe-simplify-to-eq): New helper procedure shared by expanders for 'eqv?' and 'equal?'. (*primitive-expand-table*): Add expansion rule for 'eqv?'. * test-suite/tests/tree-il.test ("primitives"): Add tests.
Diffstat (limited to 'test-suite/tests')
-rw-r--r--test-suite/tests/tree-il.test74
1 files changed, 53 insertions, 21 deletions
diff --git a/test-suite/tests/tree-il.test b/test-suite/tests/tree-il.test
index 008eb83fc..1df72e848 100644
--- a/test-suite/tests/tree-il.test
+++ b/test-suite/tests/tree-il.test
@@ -86,33 +86,65 @@
(with-test-prefix "primitives"
- (pass-if-primitives-resolved
- (apply (primitive equal?) (const #f) (toplevel x))
- (apply (primitive eq?) (const #f) (toplevel x)))
+ (with-test-prefix "eqv?"
- (pass-if-primitives-resolved
- (apply (primitive equal?) (const ()) (toplevel x))
- (apply (primitive eq?) (const ()) (toplevel x)))
+ (pass-if-primitives-resolved
+ (apply (primitive eqv?) (const #f) (toplevel x))
+ (apply (primitive eq?) (const #f) (toplevel x)))
- (pass-if-primitives-resolved
- (apply (primitive equal?) (const #t) (lexical x y))
- (apply (primitive eq?) (const #t) (lexical x y)))
+ (pass-if-primitives-resolved
+ (apply (primitive eqv?) (const ()) (toplevel x))
+ (apply (primitive eq?) (const ()) (toplevel x)))
- (pass-if-primitives-resolved
- (apply (primitive equal?) (const this-is-a-symbol) (toplevel x))
- (apply (primitive eq?) (const this-is-a-symbol) (toplevel x)))
+ (pass-if-primitives-resolved
+ (apply (primitive eqv?) (const #t) (lexical x y))
+ (apply (primitive eq?) (const #t) (lexical x y)))
- (pass-if-primitives-resolved
- (apply (primitive equal?) (const 42) (toplevel x))
- (apply (primitive eq?) (const 42) (toplevel x)))
+ (pass-if-primitives-resolved
+ (apply (primitive eqv?) (const this-is-a-symbol) (toplevel x))
+ (apply (primitive eq?) (const this-is-a-symbol) (toplevel x)))
- (pass-if-primitives-resolved
- (apply (primitive equal?) (const 42.0) (toplevel x))
- (apply (primitive equal?) (const 42.0) (toplevel x)))
+ (pass-if-primitives-resolved
+ (apply (primitive eqv?) (const 42) (toplevel x))
+ (apply (primitive eq?) (const 42) (toplevel x)))
- (pass-if-primitives-resolved
- (apply (primitive equal?) (const #nil) (toplevel x))
- (apply (primitive eq?) (const #nil) (toplevel x))))
+ (pass-if-primitives-resolved
+ (apply (primitive eqv?) (const 42.0) (toplevel x))
+ (apply (primitive eqv?) (const 42.0) (toplevel x)))
+
+ (pass-if-primitives-resolved
+ (apply (primitive eqv?) (const #nil) (toplevel x))
+ (apply (primitive eq?) (const #nil) (toplevel x))))
+
+ (with-test-prefix "equal?"
+
+ (pass-if-primitives-resolved
+ (apply (primitive equal?) (const #f) (toplevel x))
+ (apply (primitive eq?) (const #f) (toplevel x)))
+
+ (pass-if-primitives-resolved
+ (apply (primitive equal?) (const ()) (toplevel x))
+ (apply (primitive eq?) (const ()) (toplevel x)))
+
+ (pass-if-primitives-resolved
+ (apply (primitive equal?) (const #t) (lexical x y))
+ (apply (primitive eq?) (const #t) (lexical x y)))
+
+ (pass-if-primitives-resolved
+ (apply (primitive equal?) (const this-is-a-symbol) (toplevel x))
+ (apply (primitive eq?) (const this-is-a-symbol) (toplevel x)))
+
+ (pass-if-primitives-resolved
+ (apply (primitive equal?) (const 42) (toplevel x))
+ (apply (primitive eq?) (const 42) (toplevel x)))
+
+ (pass-if-primitives-resolved
+ (apply (primitive equal?) (const 42.0) (toplevel x))
+ (apply (primitive equal?) (const 42.0) (toplevel x)))
+
+ (pass-if-primitives-resolved
+ (apply (primitive equal?) (const #nil) (toplevel x))
+ (apply (primitive eq?) (const #nil) (toplevel x)))))
(with-test-prefix "tree-il->scheme"