HHVM 4.162 is released! 4.159 - 4.161 remain supported, as do the 4.128 and 4.153 LTS releases.


  • Autocomplete improvements to:
    • parent::__construct
    • the first keyword (e.g. the visibility keyword on a method) in the body of a class, interface, or trait
    • implements and extends
  • Supports type refinements for readonly expressions
  • A Hack property is now considered as a Field instead of a Property in an IDE
  • Adds a lint rule for invalid XHP class enum values
  • Passing an \Error as the $previous argument to the \Error constructor does not violate an internal typed property anymore. The argument to the constructor has/had the ?\Throwable type, but the $throwable->previous property had the ?\Exception type. Depending on the value of hhvm.check_prop_type_hints key in your configuration, this violation used to trigger a warning (the default), throw an \Error, or do nothing.

Breaking Changes

  • Added stricter types for Exception, Error, and Throwable methods and properties