ArgKind::Arg(format!("{}", field.name), "_".to_string())
}).collect::<Vec<_>>())
}
+ hir::map::NodeStructCtor(ref variant_data) => {
+ (self.tcx.sess.codemap().def_span(self.tcx.hir.span(variant_data.id())),
+ variant_data.fields()
+ .iter().map(|_| ArgKind::Arg("_".to_owned(), "_".to_owned()))
+ .collect())
+ }
_ => panic!("non-FnLike node found: {:?}", node),
}
}
let _it = vec![1, 2, 3].into_iter().map(usize::checked_add);
//~^ ERROR function is expected to take
+
+ call(Foo);
+ //~^ ERROR function is expected to take
}
fn foo() {}
fn qux(x: usize, y: usize) {}
+
+fn call<F, R>(_: F) where F: FnOnce() -> R {}
+struct Foo(u8);
LL | let _it = vec![1, 2, 3].into_iter().map(usize::checked_add);
| ^^^ expected function that takes 1 argument
-error: aborting due to 12 previous errors
+error[E0593]: function is expected to take 0 arguments, but it takes 1 argument
+ --> $DIR/closure-arg-count.rs:43:5
+ |
+LL | call(Foo);
+ | ^^^^ expected function that takes 0 arguments
+...
+LL | struct Foo(u8);
+ | --------------- takes 1 argument
+ |
+note: required by `call`
+ --> $DIR/closure-arg-count.rs:50:1
+ |
+LL | fn call<F, R>(_: F) where F: FnOnce() -> R {}
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to 13 previous errors
For more information about this error, try `rustc --explain E0593`.