None
};
printer.name_resolver = Some(Box::new(&getter));
- let _ = ty.print(printer);
+ let _ = if let ty::FnDef(..) = ty.kind {
+ // We don't want the regular output for `fn`s because it inscludes its path in
+ // invalid pseduo-syntax, we want the `fn`-pointer output instead.
+ ty.fn_sig(self.tcx).print(printer)
+ } else {
+ ty.print(printer)
+ };
s
};
--- /dev/null
+error[E0282]: type annotations needed for `fn() -> A`
+ --> $DIR/fn-needing-specified-return-type-param.rs:3:13
+ |
+LL | let _ = f;
+ | - ^ cannot infer type for type parameter `A` declared on the function `f`
+ | |
+ | consider giving this pattern the explicit type `fn() -> A`, where the type parameter `A` is specified
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0282`.