//! Regression test for #145164: For normal calls, make sure the suggestion to borrow generic inputs //! uses the generic args from the callee's type rather than those attached to the callee's HIR //! node. In cases where the callee isn't an identifier expression, its HIR node won't have its //! generic arguments attached, which could lead to ICE when it had other generic args. In this //! case, the callee expression is `run.clone()`, to which `clone`'s generic arguments are attached. fn main() { let value = String::new(); run.clone()(value, ()); run(value, ()); //~^ ERROR use of moved value: `value` } fn run(value: T, f: F) {}