diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:18:58 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:18:58 +0000 |
commit | a4b7ed7a42c716ab9f05e351f003d589124fd55d (patch) | |
tree | b620cd3f223850b28716e474e80c58059dca5dd4 /src/test/mir-opt/inline/inline_cycle.rs | |
parent | Adding upstream version 1.67.1+dfsg1. (diff) | |
download | rustc-a4b7ed7a42c716ab9f05e351f003d589124fd55d.tar.xz rustc-a4b7ed7a42c716ab9f05e351f003d589124fd55d.zip |
Adding upstream version 1.68.2+dfsg1.upstream/1.68.2+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/mir-opt/inline/inline_cycle.rs')
-rw-r--r-- | src/test/mir-opt/inline/inline_cycle.rs | 60 |
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); -} |