diff options
-rw-r--r-- | module/language/tree-il/primitives.scm | 1 | ||||
-rw-r--r-- | test-suite/tests/tree-il.test | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/module/language/tree-il/primitives.scm b/module/language/tree-il/primitives.scm index dc0a1457e..0c5b0855a 100644 --- a/module/language/tree-il/primitives.scm +++ b/module/language/tree-il/primitives.scm @@ -509,6 +509,7 @@ (eq? #nil v) (symbol? v) (and (integer? v) + (exact? v) (<= v most-positive-fixnum) (>= v most-negative-fixnum))) (make-application src (make-primitive-ref #f 'eq?) diff --git a/test-suite/tests/tree-il.test b/test-suite/tests/tree-il.test index bb7f90863..0a5303703 100644 --- a/test-suite/tests/tree-il.test +++ b/test-suite/tests/tree-il.test @@ -107,6 +107,10 @@ (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)))) |