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.
The word "base" is a bit overloaded in this signature; in the parameter InBaseClass it refers to inheritance, but in BaseType it refers to the base expression of a MemberExpr.
Maybe we can name the new parameter BaseExprType to avoid confusion?