This has been bugging me for *ages* (the whole time I've been using Visual Assist, basically), but it only just now happened whilst I've got a moment to post about it!
When programming in C++, . is not converted to -> if there is a * before the expression that evaluates to the pointer to the struct. But -> has a higher precedence than *, so this is never what you want. Indeed, the result is usually wrong!
You can surround the expression with () and get the right behaviour, so hopefully this is an easy one to fix :|
To reproduce, type the following in somewhere: (what you type is shown; explanations are in the comments)
struct x;
{ x *t;
t.x;//. converted to -> (correct) *t.x;//. left as-is (wrong) *(t).x;//. converted to -> (correct) }