From two aspects:
- For function templates, emit additional template argument
placeholders in the context where it can't be a call in order
to specify an instantiation explicitly.
- Consider expressions with base type specifier such as
'Derived().Base::foo^' a function call.
Suggestion: it would be slightly more interesting to make the function signature generic(U). Then, the function can be called as generic<T>(u) (with the template parameter U deduced), and the LastDeducibleArgument logic should make sure that only <T> is added to the code completion string, not <T, U>.