added: test case for `#inject`
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Wed, 7 Feb 2024 00:56:05 +0000 (18:56 -0600)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Wed, 7 Feb 2024 00:56:05 +0000 (18:56 -0600)
tests/bugs/injecting_global_symbol_order [new file with mode: 0644]
tests/bugs/injecting_global_symbol_order.onyx [new file with mode: 0644]

diff --git a/tests/bugs/injecting_global_symbol_order b/tests/bugs/injecting_global_symbol_order
new file mode 100644 (file)
index 0000000..96a9ac6
--- /dev/null
@@ -0,0 +1,10 @@
+2
+3
+4
+5
+6
+7
+8
+9
+11
+13
diff --git a/tests/bugs/injecting_global_symbol_order.onyx b/tests/bugs/injecting_global_symbol_order.onyx
new file mode 100644 (file)
index 0000000..d135186
--- /dev/null
@@ -0,0 +1,31 @@
+use core {
+    array,
+    iter,
+    math,
+    println
+}
+
+isPrime :: (n: i64) => {
+    max := math.sqrt(n);
+
+    for x: iter.range(cast(u64, 2), max) {
+        if n % x == 0 {
+            return false;
+        }
+    }
+    
+    return true;
+}
+
+prime_generator :: () => iter.counter(2, i64)->filter(isPrime)
+
+#inject iter {
+    range :: (min: $T, max: T) =>
+        iter.counter(min, T)->take_while((x, [max]) => x < max)
+}
+
+main :: () {
+    for prime: prime_generator() |> iter.take(10) {
+        println(prime);
+    }
+}