summaryrefslogtreecommitdiffstats
path: root/src/test/ui/issues/issue-3904.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/issues/issue-3904.rs')
-rw-r--r--src/test/ui/issues/issue-3904.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/test/ui/issues/issue-3904.rs b/src/test/ui/issues/issue-3904.rs
new file mode 100644
index 000000000..7beb91a28
--- /dev/null
+++ b/src/test/ui/issues/issue-3904.rs
@@ -0,0 +1,25 @@
+// run-pass
+fn example_err(prog: &str, arg: &str) {
+ println!("{}: {}", prog, arg)
+}
+
+fn exit<F>(print: F, prog: &str, arg: &str) where F: FnOnce(&str, &str) {
+ print(prog, arg);
+}
+
+struct X<F> where F: FnOnce(&str, &str) {
+ err: F,
+}
+
+impl<F> X<F> where F: FnOnce(&str, &str) {
+ pub fn boom(self) {
+ exit(self.err, "prog", "arg");
+ }
+}
+
+pub fn main(){
+ let val = X {
+ err: example_err,
+ };
+ val.boom();
+}