-------------------------------------------------------------------------------- Fedora Update Notification FEDORA-2019-83be579d13 2019-12-05 01:39:12.688304 --------------------------------------------------------------------------------
Name : phan Product : Fedora 31 Version : 2.4.4 Release : 1.fc31 URL : https://github.com/phan/phan Summary : A static analyzer for PHP Description : Phan is a static analyzer that looks for common issues and will verify type compatibility on various operations when type information is available or can be deduced. Phan does not make any serious attempt to understand flow control and narrow types based on conditionals. -------------------------------------------------------------------------------- Update Information: Nov 24 2019, **Phan 2.4.4** **New features (CLI, Configs):** + When stderr is redirected a file or to another program, show an append-only progress bar by default. (#3514) Phan would previously disable the progress bar entirely by default. The new `--long-progress-bar` CLI flag can be used to choose this progress bar. (The `--no-progress-bar` CLI flag or the environment variable `PHAN_DISABLE_PROGRESS_BAR=1` can be used to disable this) + Treat `$var = $x['possibly undefined offset']` as creating a definitely defined variable, not a possibly undefined variable. (#3534) The config setting `convert_possibly_undefined_offset_to_nullable` controls whether the field type gets cast to the nullable equivalent after removing undefined. **New features (Analysis):** + Emit `PhanPossiblyUndefinedArrayOffset` for accesses to array fields that are possibly undefined. (#3534) + Warn about returning/not returning in void/non-void functions. New issue types: `PhanSyntaxReturnValueInVoid`, `PhanSyntaxReturnExpectedValue` + Infer that `$var[$offset] = expr;`/`$this->prop[$offset] = expr;` causes that element to be non-null (#3546) + Emit `PhanEmptyForeachBody` when iterating over a type that isn't `Traversable` with an empty statement list. + Warn about computing `array_values` for an array that is already a list. (#3540) + Infer the real type is still an array after assigning to a field of an array. **Plugins:** + In `DuplicateExpressionPlugin`, emit `PhanPluginDuplicateIfStatements` if the body for `else` is identical to the above body for the `if/elseif`. **Maintenance:** + Support native parsing of `AST_TYPE_UNION` (union type) nodes for PHP 8.0.0-dev. + Reduce memory usage after the polyfill/fallback parser parses ASTs (when the final AST isn't cached on disk from a previous run) + Make the error message for missing `php-ast` contain more detailed instructions on how to install `php-ast`. ---- Nov 20 2019, **Phan 2.4.3** **New features (CLI, Configs):** + Support `NO_COLOR` environment variable. (https://no-color.org/) When this variable is set, Phan's error message and issue text will not be colorized unless the CLI arg `--color` or `-c` is used. This overrides the `PHAN_ENABLE_COLOR_OUTPUT` setting. + Add `PHAN_DISABLE_PROGRESS_BAR` environment variable to disable progress bar by default unless the CLI arg `--progress-bar` is used. + Show an extra decimal digit of precision in the progress bar when the terminal is wide enough. (#3514) **New features (Analysis):** + Make inferred real types more accurate for equality/identity/instanceof checks. + Combine array shape types into a single union type when merging variable types from multiple branches. (#3506) Do a better job of invalidating the real union type of fields of array shape types when the field is only checked/set on some code branches. + Make issue suggestions (and CLI suggestions) for completions of prefixes case-insensitive. + Support `@seal-properties` and `@seal-methods` as aliases of `@phan-forbid- undeclared-magic-properties` and `@phan-forbid-undeclared-magic-methods` + More aggressively infer real types of array destructuring(e.g. `[$x] = expr`) and accesses of array dimensions (e.g. `$x = expr[dim]`) (#3481) This will result in a few more false positives about potentially real redundant/impossible conditions and real type mismatches. + Fix false positives caused by assuming that the default values of properties are the real types of properties. + Infer that globals used in functions (`global $myGlobal;`) have unknown real types - don't emit warnings about redundant/impossible conditions. (#3521) **Plugins:** + Also start checking if closures (and arrow functions) can be static in `PossiblyStaticMethodPlugin` + Add `AvoidableGetterPlugin` to suggest when `$this->prop` can be used instead of `$this->getProp()`. (This will suggest using the property instead of the getter method if there are no known method overrides of the getter. This is only checked for instance properties of `$this`) + Increase severity of `PhanPluginPrintfNonexistentArgument` to critical. It will become an ArgumentCountError in PHP 8. **Maintenance:** + Bump minimum version of netresearch/jsonmapper to avoid php notices in the language server in php 7.4 + Improve worst-case performance when analyzing code that has many possible combinations of array shapes. **Bug fixes:** + Properly emit redundant and impossible condition warnings about uses of class constants defined as literal strings/floats/integers. (i.e. infer their real union types) + Fix false positive inference that `$x[0]` was `string` for `$x` of types such as `list<\MyClass>|string` (reported in #3483) + Consistently inherit analysis settings from parent classes recursively, instead of only inheriting them from the direct parent class. (#3472) (settings include presence of dynamic properties, whether undeclared magic methods are forbidden, etc.) + Don't treat methods that were overridden in one class but inherited by a different class as if they had overrides. + Fix a crash when running in php 8.0.0-dev due to Union Types being found in Reflection. (#3503) + Fix edge case looking up the `extends` class/interface name when the namespace is a `use` alias (#3494) -------------------------------------------------------------------------------- ChangeLog: * Mon Nov 25 2019 Remi Collet <[email protected]> - 2.4.4-1 - update to 2.4.4 * Thu Nov 21 2019 Remi Collet <[email protected]> - 2.4.3-1 - update to 2.4.3 - add explicit dependency on netresearch/jsonmapper * Tue Nov 12 2019 Remi Collet <[email protected]> - 2.4.2-1 - update to 2.4.2 * Mon Nov 4 2019 Remi Collet <[email protected]> - 2.4.1-1 - update to 2.4.1 * Mon Oct 28 2019 Remi Collet <[email protected]> - 2.4.0-1 - update to 2.4.0 * Mon Oct 21 2019 Remi Collet <[email protected]> - 2.3.1-1 - update to 2.3.1 * Mon Oct 14 2019 Remi Collet <[email protected]> - 2.3.0-1 - update to 2.3.0 * Fri Oct 4 2019 Remi Collet <[email protected]> - 2.2.13-1 - update to 2.2.13 - raise dependency on felixfbecker/advanced-json-rpc 3.0.4 -------------------------------------------------------------------------------- This update can be installed with the "dnf" update program. Use su -c 'dnf upgrade --advisory FEDORA-2019-83be579d13' at the command line. For more information, refer to the dnf documentation available at http://dnf.readthedocs.io/en/latest/command_ref.html#upgrade-command-label All packages are signed with the Fedora Project GPG key. More details on the GPG keys used by the Fedora Project can be found at https://fedoraproject.org/keys -------------------------------------------------------------------------------- _______________________________________________ package-announce mailing list -- [email protected] To unsubscribe send an email to [email protected] Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/[email protected]
