Code completion regression between Lazarus 2.2 and Lazarus 2.0.12
Lazarus 2.2.0RC2 (rev Unversioned directory) FPC 3.2.2 i386-win32-win32/win64
Operating System: Windows 10
CPU / Bitness: 64
When an specialized generic returns a pointer to a record (for instance a TIterator MutableValue from GMap's TMap) and a pointer dereference is written (e.g Iterator.MutableValue^.Ch) Lazarus 2.0.12 used to present code completions as "text" for the options following the period after the circumflex, which made sense: it doesn't know what the PValue is, but the IDE remained usable and snappy; Lazarus 2.2 goes into what appears to be an infinite loop using one of the CPU's cores completely; I waited a long time and it never, ever returned, several times. It would not be as annoying and painful if it only happened when I triggered code completion manually, I can avoid that; but it activates by itself even when trying to write comments. The attached file has comments above the line where death occurs and unsaved work is lost (even writing that comment killed the IDE).
What did you expect
The IDE not to go into the great beyond and behave like it used to in Lazarus 2.0.12 where, logically, code completion didn't know what could be used; but didn't die and presented instead a long list of options as "text". If no options are given that's fine... just... don't die.
Steps to reproduce
Try writing a small program that tries to access a record member from a dereference to a pointer provided by a generic; give Lazarus a little time to try and activate code completion and watch it go... go... go... never to return.regression.pas