Download Latest Version 6.0.11 source code.zip (2.7 MB) Google Add to Preferred Sources
Home / 6.0.10
Name Modified Size InfoDownloads / Week
Parent folder
phan.phar 2026-10-13 14.3 MB
phan.phar.asc 2026-10-13 566 Bytes
6.0.10 source code.tar.gz 2026-10-12 2.3 MB
6.0.10 source code.zip 2026-10-12 2.7 MB
README.md 2026-10-12 1.9 kB
Totals: 5 Items   19.3 MB 0

Bug fixes:

  • Fix /** @var int */ public mixed $value; being inferred as ?int instead of int (a 6.0.8 regression of #5560 that reported PhanTypeMismatchArgumentNullable when the property was passed to an int parameter): mixed says nothing about the property, so the @var type is used as for an untyped property; only an explicitly nullable native type such as ?Box keeps its nullability (#5596)
  • Fix false positives in catch blocks for variables assigned in a branch of the try block that ends in a throw (e.g. PhanNonClassMethodCall on a variable inferred as always null, or PhanUndeclaredVariable instead of PhanPossiblyUndeclaredVariable): the catch blocks now also see the variables at each throw statement and throw expression in the try block, not only those before and at the end of it (#5598)
  • Fix false positives PhanNonClassMethodCall and PhanTypeExpectedObjectPropAccessButGotNull for $x?->method() and $x?->prop when $x is known to be null: the nullsafe operator short-circuits to null, so the method is never called and the property never accessed. Receivers of other non-object types are still reported (#5597)
  • Fix an unwarranted null in the type of an offset read from a union of an array shape and mixed, e.g. $g[$k]['tax'] after $g[$k]['tax'] = $v; on an array $g with an unknown key $k (where $g[$k] is array{tax:int}|mixed): the type is now int instead of int|null, and unknown instead of null when the assigned value has no known type, so PhanTypeMismatchArgument is no longer reported for a non-nullable parameter. Only an array that may itself be null still makes the element nullable (#5599)
Source: README.md, updated 2026-10-12