frame variable contextually supports accessing ivars via a language's implicit
instance variable, ex this in C++ or self in ObjC.
It has been assumed that the instance variable is a pointer, resulting in this-> or
self-> prefixes. However some languages have a reference based instance variable
instead of a pointer. An example of this is Swift.
This changes DeclContextIsClassMethod and a few of its callers to return (via an out
pointer) whether the instance variable is a pointer or reference. This information is
used in GetValueForVariableExpressionPath to construct a language appropriate
prefix for the ivar.
Some cleanup included:
- The language parameter wasn't used and has been removed
- The is_instance_method parameter is redundant and has been removed -- a non-empty instance_var_name indicates the context is an instance method
- IsClassMethod's parameters have been declared with default values of nullptr
- Renamed some variables/parameters