Features
- @weirdan added the ability to assert on static class properties (#4833)
- Psalm now detects mismatching docblock property types when a property type is provided (#4912)
Bugfixes
- @lptn fixed the nullability of a
get_headers
call (#4772) - @orklah allowed
(int)
casts if the type comes from a calculation (#4768) - improve scanning after stubbed interfaces change docblocks (#4767)
- @orklah improved
pg_fetch
return types (#4777) - @VincentLanglet ensured extra files always get scanned (#4785)
- improve inference of template closure params (#4782)
- @orklah allowed passing
mixed
tois_a
(#4780) - invalidate dependent types when their linked variables change (#4794)
- ensure assigning to lists inside a foreach does not invalidate the list (#4741)
- fix regression analysing coalesce with effects (#4802)
- tighten up rules around method param inheritance (#4803)
- fix many bugs that stood in the way of an
option
implementation (#4817) - don't crash when yielding non-existent class (#4829)
- @2e3s improved rules around memoisation of mutation-free methods (#4832)
- @villfa improved the return type for
ftp_misd
(#4830) - @christeredvartsen fixed the signature for
session_name
(#4855) - @BenMorel improved
DateTimeZone
signatures (#4870, #4879) andGEOS
types (#4902) - @franmomu allowed by-reference params in
@method
docblocks (#4873) - @orklah improved behaviour for detecting illegal offsets in array creation (#4865)
- @TysonAndre made sure that
ignoreFiles
are not analysed when referenced withrequire
(#4911)
Internal stuff
- @weirdan fixed continuous integration on Windows (#4775) and a workflow to test under PHP 8 (#4790)
- @weirdan fixed file modification time checks when file was changed within same second (#4789)
- @orklah added more
lowercase-string
types to Psalm's codebase (#4904) and fixed other docs (#4905) - Travis is now just used for building Phars