about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorYuki Okushi <jtitor@2k36.org>2022-09-29 11:42:05 +0900
committerGitHub <noreply@github.com>2022-09-29 11:42:05 +0900
commitcf158a410aa68b8c100322dd7829b17f752187ce (patch)
treed542244550dc461a83f49730fd34ec2170b5e473 /src/test
parent8e4869e8629854dbebc39e6b14a7c8ceab033c58 (diff)
parent356a52cca8747aeaf8e60e5521594e81b1ff69d1 (diff)
downloadrust-cf158a410aa68b8c100322dd7829b17f752187ce.tar.gz
rust-cf158a410aa68b8c100322dd7829b17f752187ce.zip
Rollup merge of #102393 - Rageking8:add-regression-test-for-issue-94923, r=JohnTitor
Add regression test for issue 94923

Fixes #94923
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/generics/issue-94923.rs49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/test/ui/generics/issue-94923.rs b/src/test/ui/generics/issue-94923.rs
new file mode 100644
index 00000000000..d337a5dffc9
--- /dev/null
+++ b/src/test/ui/generics/issue-94923.rs
@@ -0,0 +1,49 @@
+// run-pass
+// regression test for issue #94923
+// min-llvm-version: 15.0.0
+// compile-flags: -C opt-level=3
+
+fn f0<T>(mut x: usize) -> usize {
+    for _ in 0..1000 {
+        x *= 123;
+        x %= 99
+    }
+    x + 321 // function composition is not just longer iteration
+}
+
+fn f1<T>(x: usize) -> usize {
+    f0::<(i8, T)>(f0::<(u8, T)>(x))
+}
+
+fn f2<T>(x: usize) -> usize {
+    f1::<(i8, T)>(f1::<(u8, T)>(x))
+}
+
+fn f3<T>(x: usize) -> usize {
+    f2::<(i8, T)>(f2::<(u8, T)>(x))
+}
+
+fn f4<T>(x: usize) -> usize {
+    f3::<(i8, T)>(f3::<(u8, T)>(x))
+}
+
+fn f5<T>(x: usize) -> usize {
+    f4::<(i8, T)>(f4::<(u8, T)>(x))
+}
+
+fn f6<T>(x: usize) -> usize {
+    f5::<(i8, T)>(f5::<(u8, T)>(x))
+}
+
+fn f7<T>(x: usize) -> usize {
+    f6::<(i8, T)>(f6::<(u8, T)>(x))
+}
+
+fn f8<T>(x: usize) -> usize {
+    f7::<(i8, T)>(f7::<(u8, T)>(x))
+}
+
+fn main() {
+    let y = f8::<()>(1);
+    assert_eq!(y, 348);
+}