Bruce Weirdan
89ff4282df
Allow assertions on static class properties ( #4833 )
...
* Minimal implementation for assertions on static properties
* Added inheritance tests
* Add support for `ClassName::$var`
* Import strpos() to keep phpcs happy
* Add support for conditional assertions on static properties
2020-12-21 17:05:44 +00:00
Matt Brown
524084a64c
Tighten up rules arouund when mutation-free methods get memoised
2020-12-08 16:39:06 -05:00
Matt Brown
91ee4aeca3
Fix #4797 - sanitise assertion output of template result
2020-12-07 19:11:56 -05:00
Matt Brown
4d1aae43f9
Fix #4778 - remove already-initialized properties when checking initialisation
2020-12-06 11:07:59 -05:00
Matt Brown
f5494bc407
Fix typos caused by Macbook Pro’s bad keyboard
2020-12-01 14:14:09 -05:00
Matt Brown
4d81682fdd
Fix #4731 - expand out class-bound generic types when evaluating instance method
2020-11-29 21:36:50 -05:00
Matt Brown
15a5bd5e29
Simplify storage and retrieval of extended template params
2020-11-29 15:05:32 -05:00
Matt Brown
1ce45516db
Don’t alter behaviour
2020-11-27 11:47:12 -05:00
Matt Brown
5f065d3d74
Turn template bound tuples into object
...
Ref #4714
2020-11-27 11:43:30 -05:00
Matt Brown
a8d7248c31
Fix #4524 - do better template param inheritance
2020-11-11 13:25:17 -05:00
Matt Brown
8799e1a337
Break apart complex method
2020-11-09 00:58:45 -05:00
Matt Brown
b35db3e523
Reorganise things a little
2020-11-03 16:15:54 -05:00
Matt Brown
4aef96bbac
Use lists everywhere for args
2020-10-28 12:45:26 -04:00
orklah
ceaaa39ec3
improve phpdoc ( #4352 )
2020-10-17 12:36:44 -04:00
Matt Brown
9f29e77adc
Fix #4354 - allow assignments on RHS of || in if conditional
2020-10-17 12:29:57 -04:00
orklah
62e79fb7ea
param types ( #4313 )
2020-10-12 15:46:47 -04:00
orklah
10f2966dcb
return types ( #4311 )
...
* return types
* remove willReturn for void methods
2020-10-12 15:02:52 -04:00
Matt Brown
009b33b17d
Support @no-named-args when calling in PHP 8
2020-10-02 20:58:51 -04:00
orklah
24a38f21ce
Use array destructuring when possible ( #4221 )
...
* list usage
* fix inversion
2020-09-20 12:55:38 -04:00
orklah
b19f0a7034
Remove empty() and use strict comparison when safe ( #4211 )
...
* replace empty usage with stricter checks
* use strict comparison when safe
* replace is_null with === null for consistency
2020-09-19 18:26:51 -04:00
orklah
ead107fa9e
More return types ( #4173 )
...
* add native return types
* redundant phpdoc
2020-09-12 11:24:05 -04:00
orklah
8c7423505a
add native param types ( #4137 )
...
* add native param types
* redundant phpdoc
* add more param types and adds "?" to nullable types
* remove redundant phpdoc
* add more param types and remove redundant phpdoc
* add more param types and remove redundant phpdoc
2020-09-06 19:36:47 -04:00
orklah
f66d57f19d
add native return types ( #4116 )
...
* add native return types
* remove redundant phpdoc
2020-09-04 16:26:33 -04:00
orklah
73f6fcde48
Short list syntax ( #4102 )
...
* Short list syntax
* revert unrelated CS
2020-09-02 00:17:41 -04:00
Brown
9935f647ab
Fix some magic method calls when a return type provider exists
2020-08-31 18:56:45 -04:00
Brown
92239add4d
Add some backwards-incompatible changes for 4.x
2020-08-30 11:44:14 -04:00
Brown
988e17f11d
Make clause fully immutable
2020-08-26 15:35:29 -04:00
Brown
657f9db2e0
Fix bugs
2020-07-26 15:21:05 -04:00
Brown
23f5d66516
Fix #3897 - support aliasing final methods
2020-07-26 14:46:52 -04:00
Brown
76bd5b6278
Refactor type comparison
2020-07-21 19:40:35 -04:00
Brown
223b0619c5
Fix #3858 - support @psalm-assert falsy for abort_if expressions
2020-07-21 12:55:11 -04:00
Brown
ab6df0a5d1
Fix #3753 - resolve self-references in trait as statements earlier
2020-07-05 12:05:25 -04:00
Brown
95bf7f835b
Improve handling of array_map, faking out calls where nececssary
2020-06-25 13:05:34 -04:00
Brown
4e21e54ee1
Fix #3491 - provide correct types for substitution
2020-05-30 19:11:41 -04:00
Brown
ff5c17c044
Switch subtype messagearg order
2020-05-24 09:43:54 -04:00
Brown
8e5b330c5a
Break apart CallAnalyzer
2020-05-18 22:57:00 -04:00
Brown
5ee1487a01
Make ExpressionAnalyzer more beautiful
2020-05-18 15:13:27 -04:00
Brown
111303d913
Add non-empty-lowercase-string type
2020-05-15 10:18:05 -04:00
Brown
eefd2e743b
Use generic function definition for sscanf
...
cc @villfa
2020-05-10 23:58:51 -04:00
Brown
8f2f2617d4
Improve refactor
2020-05-10 22:45:01 -04:00
Brown
5f4d162dd5
Break out type expander into separate class
2020-05-10 22:39:18 -04:00
Brown
48da7a4be8
Fix issues found with Vimeo’s code
2020-05-10 21:09:48 -04:00
Matthew Brown
da5e8a4324
Increase type coverage for projects that use assert after mixed
2020-05-02 14:55:30 -04:00
Brown
891c66650b
Prevent unintersectable template lower bounds
...
Ref #3264
2020-04-29 14:57:57 -04:00
Matthew Brown
1b752d06ab
Fix #3201 - add additional constraints on constructor initialisation
2020-04-21 00:04:47 -04:00
Brown
8533b866ab
Simplify template bounds message
...
Ref #3126
2020-04-12 22:19:49 -04:00
Brown
9d2957d339
Fix a few more edge-cases
2020-04-12 01:26:11 -04:00
m0003r
1749c19a29
Fix $assertion_var_id calculation in method calls ( #3115 )
2020-04-09 23:03:53 -04:00
m0003r
4d1be3f0c4
Allow plain assertions (@psalm-assert) about $this ( fixes #3105 ) ( #3108 )
...
* Allow plain assertions (@psalm-assert) about $this (fixes #3105 )
* Fix multiple assertion combining
* Fix multiple assertion combining for $this again
* Add test for multiple assertion combining for $this again
2020-04-09 08:15:07 -04:00
Brown
a117c48bb2
Add back nuance to error messages for conflicting type bounds
2020-04-08 12:37:46 -04:00