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