summaryrefslogtreecommitdiffstats
path: root/src/test/mir-opt/inline/inline_cycle.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/mir-opt/inline/inline_cycle.rs')
-rw-r--r--src/test/mir-opt/inline/inline_cycle.rs60
1 files changed, 0 insertions, 60 deletions
diff --git a/src/test/mir-opt/inline/inline_cycle.rs b/src/test/mir-opt/inline/inline_cycle.rs
deleted file mode 100644
index 63ad57de1..000000000
--- a/src/test/mir-opt/inline/inline_cycle.rs
+++ /dev/null
@@ -1,60 +0,0 @@
-// Check that inliner handles various forms of recursion and doesn't fall into
-// an infinite inlining cycle. The particular outcome of inlining is not
-// crucial otherwise.
-//
-// Regression test for issue #78573.
-
-fn main() {
- one();
- two();
-}
-
-// EMIT_MIR inline_cycle.one.Inline.diff
-fn one() {
- <C as Call>::call();
-}
-
-pub trait Call {
- fn call();
-}
-
-pub struct A<T>(T);
-pub struct B<T>(T);
-pub struct C;
-
-impl<T: Call> Call for A<T> {
- #[inline]
- fn call() {
- <B<T> as Call>::call()
- }
-}
-
-
-impl<T: Call> Call for B<T> {
- #[inline]
- fn call() {
- <T as Call>::call()
- }
-}
-
-impl Call for C {
- #[inline]
- fn call() {
- A::<C>::call()
- }
-}
-
-// EMIT_MIR inline_cycle.two.Inline.diff
-fn two() {
- call(f);
-}
-
-#[inline]
-fn call<F: FnOnce()>(f: F) {
- f();
-}
-
-#[inline]
-fn f() {
- call(f);
-}