phan v2.4.6 Release Notes
Release Date: 2019-12-29 // about 4 years ago-
๐ New features(CLI, Configs):
- โ Add more detailed instructions for installing dependencies new php installations on Windows without a php.ini
- ๐ Handle being installed in a non-standard composer directory name (i.e. not
vendor
) (mentioned in #1612)
๐ New Features(Analysis):
- ๐ Improve inferred array shapes for multi-dimensional assignments or conditions on arrays
(e.g.$x['first']['second'] = expr
orif (cond($x['first']['second']))
) (#1510, #3569) - Infer that array offsets are no longer possibly undefined after conditions such as
if (!is_null($x['offset']))
- ๐ Improve worst-case runtime when merging union types with many types (#3587)
- ๐ Improve analysis of assignment operators. (#3597)
- Infer
$x op= expr
and++
/--
operators have a literal value when possible, outside of loops. (#3250, #3248) - ๐ Move
PhanUndeclaredInterface
andPhanUndeclaredTrait
warnings to the line number of theuse
/implements
. (#2159) - Don't emit
PhanUndeclaredGlobalVariable
for the left side of??
/??=
in the global scope (#3601) - More consistently infer that variables are possibly undefined if they are not defined in all branches. (#1345, #1942)
- โ Add new issue types for possibly undeclared variables:
PhanPossiblyUndeclaredVariable
andPhanPossiblyUndeclaredGlobalVariable
.
๐ Plugins:
- โ Add
StrictLiteralComparisonPlugin
to warn about loose equality comparisons of constant string/int to other values. (#2310)
๐ Bug fixes: