summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Bernstein <max.bernstein@shopify.com>2025-03-14 17:32:41 -0400
committerTakashi Kokubun <takashikkbn@gmail.com>2025-04-18 21:53:00 +0900
commitf525cff5c852e7bf83a737b666bdeb946ded0f59 (patch)
treec7c633c44f24188b37c5a5171a18f91580d300f2
parent4a4845cec81d241ea5da03f3fbb15cb0f26ae2f1 (diff)
Test builtin type inference
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/13131
-rw-r--r--zjit/src/hir.rs40
1 files changed, 40 insertions, 0 deletions
diff --git a/zjit/src/hir.rs b/zjit/src/hir.rs
index 10da278bb6..873bfe05f8 100644
--- a/zjit/src/hir.rs
+++ b/zjit/src/hir.rs
@@ -1537,6 +1537,46 @@ mod tests {
}
#[test]
+ fn test_bignum() {
+ eval("def test = 999999999999999999999999999999999999");
+ assert_method_hir("test", "
+ bb0():
+ v1:Bignum[VALUE(0xdeadbeef)] = Const Value(VALUE(0xdeadbeef))
+ Return v1
+ ");
+ }
+
+ #[test]
+ fn test_flonum() {
+ eval("def test = 1.5");
+ assert_method_hir("test", "
+ bb0():
+ v1:Flonum[VALUE(0xdeadbeef)] = Const Value(VALUE(0xdeadbeef))
+ Return v1
+ ");
+ }
+
+ #[test]
+ fn test_heap_float() {
+ eval("def test = 1.7976931348623157e+308");
+ assert_method_hir("test", "
+ bb0():
+ v1:HeapFloat[VALUE(0xdeadbeef)] = Const Value(VALUE(0xdeadbeef))
+ Return v1
+ ");
+ }
+
+ #[test]
+ fn test_static_sym() {
+ eval("def test = :foo");
+ assert_method_hir("test", "
+ bb0():
+ v1:StaticSymbol[VALUE(0xdeadbeef)] = Const Value(VALUE(0xdeadbeef))
+ Return v1
+ ");
+ }
+
+ #[test]
fn test_opt_plus() {
eval("def test = 1+2");
assert_method_hir("test", "