Honestly, this is a bit of a hack, as we let `Config` to generate the
cache directory name and then reset it to null from the cli entrypoint.
Yet it's easier than passing a no-cache flag through so many layers of
static calls.
`$this->cache_directory_initialized` flag is used to make sure we
attempt to create the directory only once.
Fixesvimeo/psalm#4267
This prevents issues with incompatible `phpstan/phpdoc-parser`.
`slevomat/coding-standard:8.3` claimed compatibility with
`phpstan/phpdoc-parser:^1.6`, but it fails with a fatal error when
`phpstan/phpdoc-parser:1.14` is installed (apparently there was a BC
break in a minor version of `phpstan/phpdoc-parser`).
Since 8.4 slevomat/coding-standard adopted a more conservative
dependency strategy, and they don't allow new untested versions of
`phpstan/phpdoc-parser`.
8.4 still allows PHP 7.2, so we should have no problems due to 7.x
removal.
Variables in PHP are not namespaced. In other words, namespaces share
the context with the file they are located in.
See https://3v4l.org/2qvrCFixesvimeo/psalm#8778
Previously `psalter` would only replace the first occurence of the
property access. Now it replaces all properties (by keeping the old name
unknown in the context).
`vendor/autoload/check_platform.php` may be disabled by the user
`composer.json`, so we have to repeat the check for runtime
requirements.
Fixesvimeo/psalm#7560