This commit contains one logic change: Changed add-to-list usage to cl-pushnew in
phpinspect-merge-indexes implementation for classes. The resulting function output should
be the same.
The parser is now JIT compiled. Parser functions are generated and byte-compiled on the
fly as needed and stored in an obarray. Handler functions are stored in an obarray as well
and are compiled at load time. See docstrings and code for more information.
Macro use has been brought back to a minimum and macros have been reworked to make the
code easier to reason about.
To be able to redifine parser functions during runtime,
"M-x phpinspect-purge-parser-cache" has been added.
To redifine a handler function, one can use `phpinspect-defhandler` after loading
phpinspect.el and purge the parser cache to make sure that the new function definition is
used.
Fix phpinspect-native-types to valid PHP built-in type names.
See the code below for the types that can be described as valid return types:
https://3v4l.org/fJgLA#v8.0.10