diff options
Diffstat (limited to '')
-rw-r--r-- | src/test/ui/issues/issue-15094.rs | 26 |
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(); +} |