1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-13 17:57:37 +01:00
Commit Graph

180 Commits

Author SHA1 Message Date
SignpostMarv
3eb027d371 875 addendum (#876)
* testing port

* testing return values with port

* removing redundant assertions

* forgot to return ¬_¬

* Fix build
2018-07-10 00:08:53 -04:00
Matt Brown
166706a35d Fix #875 - improve return types for parse_url 2018-07-09 14:37:14 -04:00
Matthew Brown
cd4bb75d80 Fix #871 - handle gettimeofday args 2018-07-07 20:35:24 -04:00
Matt Brown
7e09f59825 Fix #868 - improve return type of version_compare 2018-07-06 13:09:05 -04:00
Matt Brown
376c3c54c0 Add better checks for array_reduce
Fixes #846
2018-06-28 16:01:53 -04:00
Matt Brown
ffda44c3ba Fix #838 - check assertions, even outside conditionals 2018-06-25 18:02:05 -04:00
Matt Brown
6542a0a784 Fix #810 - convert void array map return to null 2018-06-11 17:00:26 -04:00
Matt Brown
d35a3996fa Fix #811 - improve handling of closure vars 2018-06-11 16:54:20 -04:00
Matt Brown
29a971d40e Fix #793 - make sure in_array informs literal types 2018-06-08 13:53:42 -04:00
Matthew Brown
b47d732993 Fix to support PHP Parser 4.0.2 2018-06-03 10:05:50 -04:00
Bruce Weirdan
6ecea35837 array_column return type inference (#787)
* Exception message typo fixed

* array_column return type inference

It takes a safe approach and only tries to be smart when array row type
is definite single shape

* cs fix
2018-05-31 21:14:06 -04:00
Matthew Brown
c8faaf0ca9 Remove unused vars 2018-05-23 21:27:01 -04:00
Matthew Brown
e61ba336be Rewrite ifs as big switch 2018-05-23 21:17:14 -04:00
Matthew Brown
ea465852e1 Move TypeCombination logic into its own class 2018-05-19 19:44:03 -04:00
Matt Brown
f2a70fef85 Fix #745 - give iterator_to_array back its type info 2018-05-18 18:10:10 -04:00
Matthew Brown
b0733254bb
Use individual type objects for each string (#757)
* Experiment with individual types for each string

* Fix bunch of errors

* Fix a few more issues

* Fix a whole bunch of bugs

* Fix most remaining bugs

* Fix isset warnings

* Fix psalm errors in psalm

* Limit big string size

* Fix falsiness of ints

* Fix issue with type widening, allowing value set in nested if to be altered

* Don’t complain if type is mixed

* Add skipped-for-now test

* Add specific test to address issue
2018-05-18 11:02:50 -04:00
Matthew Brown
dbc0e6dfcb Use arrays instead of strings for assertions 2018-05-12 19:38:43 -04:00
Matthew Brown
b4c0ffbe9d Also match substr_replace 2018-05-09 00:39:45 -04:00
Matthew Brown
8149573754 Treat str_ireplace like str_replace 2018-05-09 00:34:44 -04:00
Matthew Brown
21261172a8 Fix #713 - support offsets of known array types 2018-05-05 17:30:18 -04:00
Matthew Brown
1a4ddc7cdd
Support value types (#707)
* Add first idea

* Add initial count experiments

* Remove false positives

* Fix getId to support changes in conditionals

* Add better tests

* Strip types when not exists

* Fix array offsets

* More fixes

* Add class constant value types

* Clone constants everywhere

* Don’t complain unnecessarily

* Be more lenient with possibly invalid __sets

* Fix mixed issues

* Fix bug concerning orred string equality

* Remove unnecessary casts
2018-05-03 13:56:30 -04:00
Matthew Brown
acacde173e Fix highlight_string return type default 2018-04-30 01:49:55 -04:00
Matthew Brown
6ad2184b7e Improve highlight_string/highlight_file signatures 2018-04-30 00:31:27 -04:00
Matt Brown
6afaf5aae9 Make Psalm compatible with PHP Parser 4 2018-04-17 13:06:02 -04:00
Matt Brown
3cc549384f Type explode more accurately 2018-04-16 16:03:04 -04:00
Matthew Brown
3fe9a0606e Fix #654 - warn about MixedArgument when inferredType property does not exist
And handle str_replace more leniently when args unknown
2018-04-07 15:16:46 -04:00
Matt Brown
60c6bb4021 Fix #650 - be more judicious about inserting mixed into places 2018-04-06 18:28:22 -04:00
Matt Brown
c932ed7764 Fix #651 - allow Psalm to understand assertions on properties of array objects 2018-04-06 16:23:10 -04:00
Matthew Brown
4ff7db09f9 Fix var_export return type
Fixes #636
2018-04-02 22:19:58 -04:00
Matthew Brown
58115599a1 Add support for callable(...) syntax
Ref #580
2018-03-26 22:13:10 -04:00
Matthew Brown
8b102d891c Allow intersection types in callable args 2018-03-18 20:29:41 -04:00
Matthew Brown
d0fc48cfaf Remove unnecessary whitespace 2018-03-15 00:37:08 -04:00
Matt Brown
822d0a116e Reflect all numeric types passed to abs
Fixes #576
2018-03-14 18:05:36 -04:00
Matt Brown
52b6a5cbde Fix #571 - fix buggy handling of packed vars 2018-03-13 13:50:41 -04:00
Matthew Brown
a0be2e390a Fix case of mapping function before analysis 2018-03-05 09:05:38 -05:00
Matt Brown
80864b1ce8 Don’t be concerned about unused params named $_
Fixes #540
2018-02-27 11:39:26 -05:00
Matt Brown
30c6aa5c68 Add missing spaces 2018-02-26 11:09:17 -05:00
Matt Brown
93b714d7c8 Fix #541 - make array_map on object-like more accurate 2018-02-26 11:01:30 -05:00
Matt Brown
9d165bee7b Fix generic return type for array_map
Ref #541
2018-02-26 10:39:48 -05:00
Matt Brown
1df4c3d196 Add DocblockTypeContradiction to find possible issues with docblock types
Fixes #491
2018-02-06 18:44:53 -05:00
Matt Brown
fc58655963 Make logic more Psalm-compatible 2018-02-06 13:52:59 -05:00
Matthew Brown
8e0998e081 Break apart the Codebase class 2018-02-03 18:56:54 -05:00
Matthew Brown
fb300baa6d Move a bunch of code into Codebase 2018-02-01 00:50:01 -05:00
Matt Brown
5e0a8c4339 Inherit correct self return type 2018-01-26 10:59:30 -05:00
Matt Brown
1a2d13ae32 Ignore falsable issues from core functions 2018-01-25 13:07:36 -05:00
Matthew Brown
ea28ee709d Improve unused variable detection slightly 2018-01-25 01:04:26 -05:00
Matt Brown
f46cf729bb Allow null checks against preg_replace and related 2018-01-24 17:07:03 -05:00
Matthew Brown
bc9761f6c9 Create Codebase out from ProjectChecker 2018-01-21 13:45:33 -05:00
Matthew Brown
92e43b8fa0 Add a few optimisations 2018-01-20 21:22:33 -05:00
Matt Brown
a253ca68bc Allow array_filter to inspect closure bodies 2018-01-17 16:07:46 -05:00