about summary refs log tree commit diff
path: root/src/test/mir-opt
diff options
context:
space:
mode:
authorTomasz Miąsko <tomasz.miasko@gmail.com>2020-11-11 00:00:00 +0000
committerTomasz Miąsko <tomasz.miasko@gmail.com>2020-11-12 20:09:04 +0100
commit66cadec1763ac645337c1ac58f06ea48b9b72a26 (patch)
tree2290df57297ddb43400e090e6dab732c5875acf2 /src/test/mir-opt
parent9bb3d6b7d472e2116312ea45db07a5338af205fb (diff)
downloadrust-66cadec1763ac645337c1ac58f06ea48b9b72a26.tar.gz
rust-66cadec1763ac645337c1ac58f06ea48b9b72a26.zip
Fix generator inlining by checking for rust-call abi and spread arg
Diffstat (limited to 'src/test/mir-opt')
-rw-r--r--src/test/mir-opt/inline/inline-generator.rs16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/test/mir-opt/inline/inline-generator.rs b/src/test/mir-opt/inline/inline-generator.rs
new file mode 100644
index 00000000000..d11b3e548f7
--- /dev/null
+++ b/src/test/mir-opt/inline/inline-generator.rs
@@ -0,0 +1,16 @@
+// ignore-wasm32-bare compiled with panic=abort by default
+#![feature(generators, generator_trait)]
+
+use std::ops::Generator;
+use std::pin::Pin;
+
+// EMIT_MIR inline_generator.main.Inline.diff
+fn main() {
+    let _r = Pin::new(&mut g()).resume(false);
+}
+
+#[inline(always)]
+pub fn g() -> impl Generator<bool> {
+    #[inline(always)]
+    |a| { yield if a { 7 } else { 13 } }
+}