Brown
50e729a6d1
Fix more list issues
2019-10-09 13:42:39 -04:00
Brown
e822ec7541
Unsetting list elements should turn to an array
2019-10-09 12:49:31 -04:00
Brown
54d5a25077
Remove known array offsets after altering array
2019-10-09 10:36:55 -04:00
Brown
b75720c32b
Add more list types
2019-10-09 10:04:34 -04:00
Brown
0b0534d41b
Add more list annotations to Psalm’s codebase
2019-10-09 09:17:43 -04:00
Matthew Brown
10b0be3650
Fix explode
2019-10-09 07:44:26 -04:00
Matthew Brown
c7600fde10
Fix #2217 - interpret callable self return type references properly
2019-10-09 07:40:42 -04:00
Matthew Brown
51cfd556d6
Add non-empty-list support
2019-10-08 22:53:55 -04:00
Matthew Brown
6a07757b9a
Fix tests
2019-10-08 22:41:23 -04:00
Matthew Brown
d7007c3b76
Fix casing
2019-10-08 22:25:15 -04:00
Matthew Brown
38de68f507
array_values should preserve array non-emptiness
2019-10-08 22:22:58 -04:00
Matthew Brown
5cdc3aa6d4
Remove tautological statement
2019-10-08 21:39:28 -04:00
Matthew Brown
2ae76bbc8e
Prohibit objectlike to list
2019-10-08 21:38:01 -04:00
Matthew Brown
e620c2cfa4
Fix issue creating empty array offsets
2019-10-08 21:23:16 -04:00
Brown
db33efb3e8
Fix another bad comma
2019-10-08 19:13:04 -04:00
Brown
23fcbec584
Add a few more list types
2019-10-08 19:06:16 -04:00
Brown
2d4a7fbe3e
Fix array fetch analysis offset
2019-10-08 19:01:00 -04:00
Brown
573b6bfe67
Remove bad comma
2019-10-08 18:51:44 -04:00
Brown
16c33d1565
Add support for list type
...
Fixes #2209
2019-10-08 18:44:46 -04:00
Brown
c7eff18481
Add basic type classes for TList
2019-10-08 18:43:54 -04:00
Brown
5265aee278
Process reconciliation more aptly
2019-10-08 14:33:06 -04:00
Brown
6b012f8fa6
Use smarter type merging when analysing if statements
2019-10-08 13:07:28 -04:00
Brown
f175050837
Fix #2214 - use better way for marking types as changed
2019-10-07 16:59:05 -04:00
Guuzen
50df2868f2
Fix issue #2201 ( #2212 )
2019-10-06 15:28:41 -04:00
bugreportuser
064d4886c3
Track exception suppressions ( #2211 )
2019-10-04 14:01:58 -04:00
Brown
94001aad4a
Fix #2208 - handle templated property types appropriately
2019-10-04 13:51:36 -04:00
Jay Klehr
27961045a0
allowing null as type for mysqli real_connect for host and passwd parameters ( #2210 )
2019-10-04 13:07:28 -04:00
Brown
b0aaede9e1
Add support for checking integer array offsets
2019-10-04 11:08:08 -04:00
Matthew Brown
d85fbaec09
Add stricter checks after first isset
2019-10-03 21:34:56 -04:00
Brown
60214ab0c7
Allow assertions on arbitrary offsets without isset
2019-10-03 18:40:47 -04:00
Brown
ebe8bedb20
Allow assertions on class constants
2019-10-03 18:13:04 -04:00
Brown
ca06277f30
Add better support for previous key types
2019-10-03 15:43:17 -04:00
Brown
549aee47f1
Fix bug asserting array emptiness
2019-10-03 15:27:55 -04:00
bugreportuser
d8855282c6
Add more impure functions ( #2203 )
2019-10-03 15:01:31 -04:00
Brown
9b31483018
Fix unused var
2019-10-02 09:35:22 -04:00
Matthew Brown
24977fb021
Fix small bug
2019-10-02 01:17:45 -04:00
Brown
d225374d6d
Fix #2156 - do better inference after isset
2019-10-01 19:31:08 -04:00
Brown
a81c3067ad
Store the whole type
2019-10-01 17:09:32 -04:00
Brown
f8f8b633b1
Suppress a bunch of PossiblyUndefinedArrayOffset issues
2019-10-01 15:44:43 -04:00
Matthew Brown
9f10564184
Add another array addition check
2019-10-01 09:13:31 -04:00
Fabien Villepinte
e7faf81223
Fix the arguments order of rar_entry_get() ( #2189 )
2019-10-01 08:47:56 -04:00
Matthew Brown
95c7b986c2
Fix formatting
2019-10-01 08:46:37 -04:00
Matthew Brown
2ffdf1bacc
Fix undefined numeric offset
2019-10-01 08:45:36 -04:00
Matthew Brown
f8a2eae0e2
Fix #2186 - use expanded class name for aliased class
2019-09-30 22:15:48 -04:00
Matthew Brown
a9d0296252
Fix #2182 - allow modification to cloned objects inside
2019-09-30 22:07:20 -04:00
Matthew Brown
0f7925e769
Fix #2183 - evaluate return after do with break inside
2019-09-29 16:12:52 -04:00
Matthew Brown
14adc9b491
Fix phpcs
2019-09-29 16:04:32 -04:00
Matthew Brown
4ec22cffca
Fix #2184 - execute __invoke methods explicitly
2019-09-29 16:01:33 -04:00
Matthew Brown
9af8a9ac38
Fix #2181 - prevent class template types being wiped by anonymous class use
2019-09-27 12:58:32 -04:00
Matthew Brown
81464d8dbf
Fix #2179 - add gz* to list of impure functions
2019-09-27 09:50:33 -04:00
Matthew Brown
cbc142671d
Fix #2175 - support late-resolved empty arrays
2019-09-27 09:05:56 -04:00
Brown
4823ec54d4
Add slashes
2019-09-26 17:12:57 -04:00
Brown
4ff3a5517d
Fix typo
2019-09-26 17:12:57 -04:00
Brown
4ec966d72a
Fix variable
2019-09-26 15:53:41 -04:00
Brown
73eb71bada
I think I understand strpos/strrpos a little better now
2019-09-26 15:31:56 -04:00
Brown
4832aa6075
Fix incorrect location for substitution
2019-09-26 15:22:33 -04:00
Brown
cf799d0926
Fix #2173 - remove @var annotations automatically
2019-09-26 15:08:05 -04:00
Brown
2c9a082b3e
Fix #2172 - only complain about missing offset if it’s really missing
2019-09-25 19:02:49 -04:00
Brown
2fa0e05802
Fix #2169 - always use most immediate function storage when analysing
2019-09-25 18:48:41 -04:00
Brown
5e47cda6e5
Fix #2170 - allow @method annotations to override inherited immutable ones
2019-09-25 17:39:32 -04:00
Brown
648dda67ed
Fix Psalm issues
2019-09-25 13:12:29 -04:00
Brown
1a48be8e9c
Fix #2165 - coerce null array offset to zero
2019-09-25 12:17:37 -04:00
Brown
2d621f185a
Fix #2166 - inherit twice from docblocks
2019-09-25 12:02:59 -04:00
Matthew Brown
56d250777e
Add back interface complaint
2019-09-22 20:42:31 -04:00
Matthew Brown
3205d1b752
Fix #2158 - loose equality should not imply equivalence
2019-09-22 10:54:17 -04:00
Matthew Brown
80059f9139
Scrub inferred mutation-free when method is overridden
2019-09-22 09:40:08 -04:00
Matthew Brown
add051c2be
Enforce immutability constraints only on interface methods
2019-09-22 09:26:26 -04:00
Matthew Brown
3d84518eab
Fix closure usage in Psalm code
2019-09-22 01:03:42 -04:00
Matthew Brown
a5f79353ed
Fix #2157 - don’t merge closures and callable params
2019-09-22 00:58:30 -04:00
Matthew Brown
9c629414a7
Fix #2138 - complain when inheriting from immutable interfaces without annotation
2019-09-21 22:52:30 -04:00
Matthew Brown
340b7b9752
Fix phpcs issue
2019-09-21 21:53:39 -04:00
Matthew Brown
0ae04c9743
Fix #2148 - support arrays properly
2019-09-21 21:50:11 -04:00
Matthew Brown
264131c211
Fix #2121 - no internal error on funk assertion syntax
2019-09-21 21:22:31 -04:00
Matthew Brown
ae46c9e132
Fix #2114 - make builtin constructors mutation free
2019-09-21 21:07:27 -04:00
Matthew Brown
fdbea45534
Fix #2159 - only apply elseif conditions to vars that exist in main context
2019-09-21 16:58:31 -04:00
Matthew Brown
d387a1966c
Fix array_slice return type
2019-09-21 15:50:37 -04:00
Brown
c68dcf2f74
Don’t coerce false to null when coming from ignore-false type
2019-09-20 15:30:29 -04:00
Brown
be4894c8e0
Fix #2155 - coerce false to 0, true to 1 in array offset
2019-09-20 15:21:38 -04:00
Brown
f6b0de08f8
Remove unnecessary assertion
2019-09-19 15:41:44 -04:00
Brown
e6f90ab83f
Fix #2146 - check count args length
2019-09-19 15:07:49 -04:00
Brown
c5ef2516b5
Fix #2150 - add detection for unnecessary @var annotations
...
And also remove them from codebase
2019-09-19 11:59:43 -04:00
Matthew Brown
9ad6c36d9b
Conditionally verify that array offsets exist ( #2147 )
...
* Check array offsets idea
* Clean up some issues
* Add a few light fixes
* Add docs
2019-09-18 14:21:06 -04:00
Brown
0ac9108814
Fix #2139 - allow comprehension of constant ternaries
2019-09-17 11:29:41 -04:00
Brown
6423a5e68a
Fix #2145 - complain make byref params passed to closures mixed afterwards
2019-09-16 18:42:44 -04:00
Brown
a0f7e73aea
Fix #2127 - improve behaviour of suppression discovery in threaded mode
2019-09-16 11:58:42 -04:00
Matthew Brown
0b4981f01b
Fix #1551 - do better at inferring class constant types
2019-09-14 14:26:31 -04:00
Matthew Brown
d941294a84
Move class const analysis
2019-09-14 13:12:54 -04:00
Joram Schrijver
0b39884974
Fix some return values in the language server ( #2134 )
...
* Fix return value of LSP shutdown
It is specified as a request that returns null. Returning void causes
the language server to crash.
* Fix empty responses of LSP textDocument/definition
It is specified to return either a Location, an array of Locations, or
null. Hovers are unrelated.
* Fix responses of LSP textDocument/hover
It is specified to either return Hover or null. Psalm could previously
return a success response containing a MarkedString, but with a null
value. MarkedString is not allowed to contain null.
2019-09-14 10:14:03 -04:00
SignpostMarv
943705ce0e
load an xdebug stub when required, re: vimeo/psalm#2118 ( #2133 )
...
* load an xdebug stub when required, re: vimeo/psalm#2118
* correcting case sensitivity of XDebug to Xdebug
* only load the Xdebug stub when needed
2019-09-14 10:13:39 -04:00
Brown
944531b73b
fix #2125 - Don’t assume function args are necessarily authoratative
2019-09-11 13:52:58 -04:00
LeSuisse
a8e58b0ba0
Fix signatures of \ldap_bind() and \ldap_bind_ext() ( #2122 )
...
Both functions accepts a null $bind_rdn parameter to do an
anonymous bind and they also accept a fourth optional
parameter.
References:
https://www.php.net/manual/en/function.ldap-bind.php
https://github.com/php/php-src/blob/php-7.3.9/ext/ldap/ldap.c#L1152
https://github.com/php/php-src/blob/php-7.3.9/ext/ldap/ldap.c#L1209
2019-09-11 12:01:53 -04:00
Fabien Villepinte
601827137a
Fix the signature of sodium_crypto_scalarmult_base() ( #2119 )
2019-09-10 18:11:15 -04:00
Brown
8784812739
Fix #2116 - allow property set inside unserialize
2019-09-10 10:31:46 -04:00
Matthew Brown
deb36e8b27
Allow array_map alone when it uses a closure
2019-09-09 21:28:56 -04:00
Brown
a6baa2d04c
Allow callables to be understood as pure
...
Fixes #2112
2019-09-09 12:11:04 -04:00
Brown
a1ea5c38c2
Clean up unnecessary annotation
...
Ref #2111
2019-09-09 11:20:47 -04:00
Brown
b49444b8ad
Allow immutable objects to be cloned
...
Fixes #2111
2019-09-09 11:14:40 -04:00
Brown
21aa162d0a
Make assert() pure
...
Fixes #2113
2019-09-09 10:43:10 -04:00
Brown
56c884845f
Static methods inside @psalm-immutable class should be permitted
...
Fixes #2109
2019-09-09 10:38:55 -04:00
Matthew Brown
78175c9765
Support @psalm-readonly too
2019-09-08 15:12:30 -04:00