summaryrefslogtreecommitdiffstats
path: root/src/test/ui/issues/issue-15094.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/issues/issue-15094.rs')
-rw-r--r--src/test/ui/issues/issue-15094.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/test/ui/issues/issue-15094.rs b/src/test/ui/issues/issue-15094.rs
new file mode 100644
index 000000000..71b75a6e7
--- /dev/null
+++ b/src/test/ui/issues/issue-15094.rs
@@ -0,0 +1,26 @@
+#![feature(fn_traits, unboxed_closures)]
+
+use std::{fmt, ops};
+
+struct Debuger<T> {
+ x: T
+}
+
+impl<T: fmt::Debug> ops::FnOnce<(),> for Debuger<T> {
+ type Output = ();
+ fn call_once(self, _args: ()) {
+ //~^ ERROR `call_once` has an incompatible type for trait
+ //~| expected fn pointer `extern "rust-call" fn
+ //~| found fn pointer `fn
+ println!("{:?}", self.x);
+ }
+}
+
+fn make_shower<T>(x: T) -> Debuger<T> {
+ Debuger { x: x }
+}
+
+pub fn main() {
+ let show3 = make_shower(3);
+ show3();
+}