1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-12 09:19:40 +01:00
Commit Graph

137 Commits

Author SHA1 Message Date
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
7dd86efa13 Add support for checking negative values 2018-05-12 18:46:47 -04:00
Matt Brown
5c0f4a999c Move a bunch of classes to better places 2018-05-11 18:35:02 -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
Matt Brown
f2ff727649 Fix #706 - don’t namespace & 2018-05-03 13:15:16 -04:00
Matthew Brown
35725267f9 Fix #691 - Allow comparisons to float for integer results 2018-04-24 23:02:20 -04:00
Matthew Brown
e2400920b9 Fix #693 - add @TysonAndre’s fix for atomic type checks 2018-04-24 21:27:31 -04:00
Matt Brown
8d7c365e5f Fix #679 - improve template param type checks 2018-04-20 10:52:23 -04:00
Matthew Brown
7345a44494 Fix callable parse issue 2018-04-15 18:16:31 -04:00
Matthew Brown
797cab22f8 Fix support for Closure(int):int annotation 2018-04-08 10:02:41 -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
6d572096d6 Prohibit bad characters from types 2018-04-05 14:11:57 -04:00
Matt Brown
4065fa894f Add numeric to Psalm reserved types 2018-04-04 14:42:23 -04:00
Matt Brown
b4fba8f805 Allow capitalised reserved words 2018-04-04 12:39:05 -04:00
Matthew Brown
4552e69ef2 Allow classes to be instantiated by their name only
Ref #641
2018-04-03 22:20:00 -04:00
Matt Brown
fef56c7633 Fix #639 - add scalar to psalm-recognised types 2018-04-03 11:24:23 -04:00
Matt Brown
734b6915db Fix #635 - type combinations should copy over possibly undefined flag 2018-04-02 14:36:33 -04:00
Matthew Brown
faa2d6f2e1 Fix #634 - prevent prefixing objectlike keys with namespaces 2018-04-02 00:39:59 -04:00
Matthew Brown
51055eb17e Add self and static to reserved word list 2018-03-30 19:20:38 -04:00
Matthew Brown
6a6d6465f5 Fix #619 - don’t use capitalised letters to discriminate classes 2018-03-30 19:04:21 -04:00
Matt Brown
3213695c95 Fix off-by-one error
Fixes #625
2018-03-27 14:43:39 -04:00
Matthew Brown
58115599a1 Add support for callable(...) syntax
Ref #580
2018-03-26 22:13:10 -04:00
Matthew Brown
74aa376ec7 Fix #617 - catch exception on bad square brackets 2018-03-24 21:02:44 -04:00
Matt Brown
06e850867d Allow combined keys to be possibly undefined 2018-03-23 13:14:00 -04:00
Matthew Brown
a4a618c9e5 Fix rules regarding always-defined object-like properties 2018-03-23 01:36:56 -04:00
Matthew Brown
a96ce89e9f Allow arbitrary bracketing of types 2018-03-22 22:28:06 -04:00
Matthew Brown
c54850aa5b Revert changes to Type.php 2018-03-22 21:52:36 -04:00
Matthew Brown
5ff6f27178 Fix #615 - numeric-string is always still a string 2018-03-22 21:48:26 -04:00
Matt Brown
cc3aafe4c4 Improve intersection type parsing 2018-03-22 17:55:36 -04:00
Matthew Brown
bc0c4322d5 Allow object-like with all optional vars to be compared to empty array 2018-03-21 10:46:21 -04:00
Matthew Brown
3f90bceabf Use objects for type parsing 2018-03-20 20:26:58 -04:00
Matthew Brown
6b793db5c6 Allow some intersection types
Fixes #600 Ref #594
2018-03-18 13:57:28 -04:00
Matthew Brown
61af2a924c Fix #575 - generated possibly-undefined keys when scanning objectlike return types
Ref #458
2018-03-17 16:53:11 -04:00
Matthew Brown
10d18481a2 Add syntax support for optional array types
Ref #458
2018-03-16 23:37:10 -04:00
Matt Brown
850998ed1a Add class-string type for enforcing use of ::class constants 2018-03-05 16:06:06 -05:00
Matt Brown
5471b89391 Make array coercion an error 2018-02-21 18:59:31 -05:00
Matthew Brown
88ca7d2fa7 Fix #515 - make Psalm aware of variable array keys 2018-02-17 11:24:08 -05:00
Matthew Brown
a6b54a3607 Fix #513 - make sure numeric is treated like a number 2018-02-15 19:50:50 -05:00
Matt Brown
78cc1786c8 Don’t check newly-scoped vars in conditional 2018-02-08 14:46:06 -05:00
Matt Brown
30ca2ad65f Fix issues with mixed assignments inside loop 2018-02-08 14:02:32 -05:00
Matthew Brown
473a174f23 Memoise type tokenisation and move functions to more logical locations 2018-02-04 12:23:32 -05:00
Matthew Brown
4a672fade8 Add a couple of optimisations suggested by Scrutinizer 2018-01-28 17:26:09 -05:00
Matt Brown
543872f186 Allow @psalm-ignore-falsable-return annotation
Downgrades issues around use of current(), reset(), end() etc.
2018-01-24 18:52:58 -05:00
Matt Brown
abf561bb7d Improve Psalter return type additions 2018-01-23 12:03:18 -05:00
Matthew Brown
92e43b8fa0 Add a few optimisations 2018-01-20 21:22:33 -05:00
Matt Brown
9f2a0847a4 Fix #453 - catch bad objectlike type when analysing docblock 2018-01-19 16:06:30 -05:00
Matthew Brown
75daea5f04 Fix #382 - improve reserved word checks 2018-01-10 00:07:47 -05:00
Matt Brown
edde8930af Speed up Psalm by caching result of Union::getId 2018-01-09 15:05:48 -05:00
Matthew Brown
693c7a81fa Improve tracking of docblock types 2018-01-07 17:25:23 -05:00