- Use the expression's type for non-C++ as the variable type. This works well, but might not preserve the typedefs due to type canonicalization.
- Improve support for Objective-C property references which are represented using ObjCPropertyRefExpr and BuiltinType::PseudoObject.
just QualType, it's internally nullable already
(some value in being explicit, but the code below handling two different null values is more confusing imo)
And this is more clearly VarType - it's the type you intend for the variable, and it's not necessarily the type of the extracted expression (see pseudo-object stuff)