summaryrefslogtreecommitdiffstats
path: root/src/test/mir-opt/inline/caller_with_trivial_bound.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/mir-opt/inline/caller_with_trivial_bound.rs')
-rw-r--r--src/test/mir-opt/inline/caller_with_trivial_bound.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/test/mir-opt/inline/caller_with_trivial_bound.rs b/src/test/mir-opt/inline/caller_with_trivial_bound.rs
new file mode 100644
index 000000000..8545db894
--- /dev/null
+++ b/src/test/mir-opt/inline/caller_with_trivial_bound.rs
@@ -0,0 +1,26 @@
+// ignore-wasm32 compiled with panic=abort by default
+// needs-unwind
+
+#![crate_type = "lib"]
+pub trait Factory<T> {
+ type Item;
+}
+
+pub struct IntFactory;
+
+impl<T> Factory<T> for IntFactory {
+ type Item = usize;
+}
+
+// EMIT_MIR caller_with_trivial_bound.foo.Inline.diff
+pub fn foo<T>()
+where
+ IntFactory: Factory<T>,
+{
+ let mut x: <IntFactory as Factory<T>>::Item = bar::<T>();
+}
+
+#[inline(always)]
+pub fn bar<T>() -> <IntFactory as Factory<T>>::Item {
+ 0usize
+}