--------------------------------------------------------------------------------
Fedora Update Notification
FEDORA-2018-e3e43a24c1
2018-10-19 16:05:40.322408
--------------------------------------------------------------------------------
Name : phan
Product : Fedora 28
Version : 1.1.0
Release : 1.fc28
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:
08 Oct 2018, **Phan 1.1.0** Maintenance: + Work on making this compatible with
`php-ast` 1.0.0dev. (#2038) (Phan continues to support php-ast 0.1.5 and
newer). Remove dead code (such as helper functions and references to constants)
that aren't needed when using AST version 50 (which Phan uses). Some plugins
may be affected if they call these helper methods or use those constants when
the shim is used. Bug fixes: + Fix a crash parsing an empty `shell\_exec`
shorthand string when using the fallback parser (i.e. two backticks in a row) +
Fix a false positive `PhanUnusedVariable` warning about a variable declared
prior to a do/while loop (#2026) ---- 02 Oct 2018, **Phan 1.0.7** New
features(Analysis): * Support the (int|string)[] syntax of union types
(union of multiple types converted to an array) in PHPDoc (#2008) e.g. @param
(int|string)[] $paramName, @return (int|string)[] * Support spaces after
commas in array shapes (#1966) * Emit warnings when using non-strings as
dynamic method names (e.g. $o->{$notAString}()) New issue types:
PhanTypeInvalidMethodName, PhanTypeInvalidStaticMethodName,
PhanTypeInvalidCallableMethodName Plugins: * In HasPHPDocPlugin, use a more
compact representation to show what Phan sees from the raw doc comment. * In
HasPHPDocPlugin, warn about global functions without extractable PHPDoc
summaries. New issue types: PhanPluginNoCommentOnFunction,
PhanPluginDescriptionlessCommentOnFunction * In HasPHPDocPlugin, warn about
methods without extractable PHPDoc summaries. New issue types:
PhanPluginNoCommentOn*Method, PhanPluginDescriptionlessCommentOn*Method.
These can be suppressed based on the method FQSEN with plugin_config => [...,
'has_phpdoc_method_ignore_regex' => (a PCRE regex)] (e.g. to suppress issues
about tests, or about missing documentation about getters and setters, etc.)
Bug fixes: * Fix false positive PhanUnusedVariable for variables declared
before break/continue that are used after the loop. (#1985) * Properly emit
PhanUnusedVariable for variables where definitions are shadowed by definitions
in branches and/or loops. (#2012) * Properly emit PhanUnusedVariable for
variables which are redefined in a 'do while' loop. * Be more consistent
about emitting PhanUnusedVariableCaughtException when exception variable names
are reused later on. * Fix a crash when parsing @method annotations with many
parameters (#2019) ---- 25 Sep 2018, **Phan 1.0.6** New features: + Be more
consistent about warning about undeclared properties in some edge cases. New
issue types: `PhanUndeclaredClassProperty`, `PhanUndeclaredClassStaticProperty`
Maintenance: + Restore test files in future published releases' **git tags**
(#1986) (But exclude them from the zip/tar archives published on GitHub
Releases) - When `--prefer-dist` (the default) is used in composer to
download a stable release, the test files will not be part of the downloaded
files. Language Server/Daemon mode: + Add support for code completion
suggestions. (#1706). This can be enabled by passing `--language-server-enable-
completion`. This will complete references to the following element types:
- variable names (using superglobals and local variables that have been declared
in the scope) - global constants, global functions, and class names. -
class constants, instance and static properties, and instance and static method
names. NOTE: If you are completing from the empty string (e.g. immediately
after `->` or `::`), Phan may interpret the next word token (e.g. on the next
line) as the property/constant name/etc. to complete, due to the nature of the
parser used (The cursor position doesn't affect the parsing logic). -
Completion requests before tokens that can't be treated that way will not cause
that problem. (such as `}`, `;`, `)`, the end of the file, etc.) Bug fixes:
+ Fix various uncaught errors in Phan that occurred when parsing invalid ASTs.
Instead of crashing, warn about the bug or invalid AST. New issue types:
`PhanInvalidConstantFQSEN`, PhanContextNotObjectUsingSelf`,
`PhanInvalidTraitUse` (for unparseable trait uses) ---- 21 Sep 2018, **Phan
1.0.5** New Features (Analysis) + Warn if a PHPDoc annotation for an
element(`@param`, `@method`, or `@property*`) is repeated. (#1963) New issue
types: `PhanCommentDuplicateMagicMethod`, `PhanCommentDuplicateMagicProperty`,
`PhanCommentDuplicateParam` + Add basic support for `extract()` (#1978) +
Improve line numbers for warnings about `@param` and `@return` annotations
(#1369) Maintenance: + Make `ext-ast` a suggested composer dependency instead
of a required composer dependency (#1981) `--use-fallback-parser` allows Phan
to analyze files even when php-ast is not installed or enabled. + Remove test
files from future published releases (#1982) Plugins: + Properly warn about
code after `break` and `continue` in `UnreachableCodePlugin`. Previously, Phan
only warned about code after `throw` and `return`. Bug fixes: + Don't infer
bad types for variables when analyzing `array_push` using expressions containing
those variables. (#1955) (also fixes other `array_*` functions taking
references) + Fix false negatives in PHP5 backwards compatibility heuristic
checks (#1939) + Fix false positive `PhanUnanalyzableInheritance` for a method
inherited from a trait (which itself uses trait) (#1968) + Fix an uncaught
`RuntimeException` when type checking an array that was roughly 12 or more
levels deep (#1962) + Improve checks of the return type of magic methods against
methods inherited from ancestor classes (#1975) Don't emit a false positive
`PhanParamSignaturePHPDocMismatchReturnType` Language Server/Daemon mode: +
Fix an uncaught exception when extracting a URL with an unexpected scheme (not
`file:/...`) (#1960) + Fix false positive `PhanUnreferencedUseNormal` issues
seen when the daemon was running without pcntl (#1860)
--------------------------------------------------------------------------------
This update can be installed with the "dnf" update program. Use
su -c 'dnf upgrade --advisory FEDORA-2018-e3e43a24c1' 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
--------------------------------------------------------------------------------