Matt Brown
17ea48eda4
Add ability to pretend that a file has declare(strict_types=1)
2018-08-29 15:10:56 -04:00
Matt Brown
956a7c749b
Improve handling of array_search and strstr, and restrict ini_set types
2018-08-29 13:58:07 -04:00
Matt Brown
f844f86a6c
Improve type coercion checks in strict mode
2018-08-28 17:42:39 -04:00
Matt Brown
1037485a60
Convert InvalidScalarArgument to InvalidArgument when declare(strict_types=1) is set
2018-08-28 12:37:25 -04:00
Matt Brown
2599d8bd62
Allow some folders to be excluded from type stats collection
2018-08-24 17:46:13 -04:00
Matt Brown
caf65ca8a9
Fix #957 - allow assertions on $_GET, $_POST, $_SERVER etc
2018-08-24 16:48:14 -04:00
Matt Brown
4ef2aafdd8
Fix #955 - always check third argument of array_splice
2018-08-24 16:12:07 -04:00
Matt Brown
0691763803
Fix issue reconciling class strings
2018-08-23 11:43:53 -04:00
Matthew Brown
867ebd4441
Fix #953 - support spaces either side of |
2018-08-22 22:53:44 -04:00
Matt Brown
ebc65baa91
Fix issues with coerced class-string
2018-08-21 17:59:06 -04:00
Matt Brown
91100edcc9
Fix issue mixing class strings and class string constants
2018-08-21 14:47:28 -04:00
Matt Brown
699a34fc9d
Fix #952 - improve checks for string array offsets
2018-08-21 11:40:29 -04:00
Matthew Brown
bf79169a1d
Fix #914 - check for correct character when setting calculated field
2018-08-21 00:43:45 -04:00
Matthew Brown
4ad3522448
Fix #918 - improve handling of associative array offsets
2018-08-21 00:28:39 -04:00
Matthew Brown
36e2b1dd67
Fix #925 - set correct flag when coercing class-like string to specific
2018-08-20 22:25:10 -04:00
Matthew Brown
8814dff3c1
Fix #947 - interpret type hints of unpacked args
2018-08-20 22:11:01 -04:00
Pieter De Schepper
14e336e69a
Fix for not suppressing MethodSignatureMismatch and InvalidReturnType ( #939 )
...
* Fix for not suppressing MethodSignatureMismatch
If you have an inherited class that overrides a method with a different return type, you can now suppress it with
@psalm-suppress MethodSignatureMismatch
* Fix for non-suppressable InvalidReturnType
2018-08-20 21:37:21 -04:00
François Kooman
53ddb893e2
various DateTime/DateInterval argument type fixes ( #949 )
2018-08-18 16:18:55 -04:00
Matt Brown
070e7903df
Allow suppression of TooManyArguments by function/method id
2018-08-16 16:49:33 -04:00
Bruce Weirdan
3b3863f3a8
Scan entire file/dir list at once ( #944 )
...
fixes vimeo/psalm#943
2018-08-15 11:57:40 -04:00
Matt Brown
366f625c83
Improve handling of coerced-to-array strings in array_splice
2018-08-14 11:51:17 -04:00
Matt Brown
cb63f4f70f
Add support for checking DeprecatedTrait and DeprecatedConstant
2018-08-10 13:25:25 -04:00
Matthew Brown
2fee699d25
Fix #908 - dont’t emit UnresolvableInclude after file_exists check
2018-08-09 23:29:30 -04:00
Matthew Brown
abc19d7136
Fix #915 - never care about falsable/nullable issues when matching functions from callmap
2018-08-08 23:28:30 -04:00
Matthew Brown
b9018a4a03
Fix #936 - add support for class constants in enums
2018-08-08 23:12:12 -04:00
Matthew Brown
7c10a09ead
Fix #911 - properly substitute alias types
...
Also improve handling of array_splice
2018-08-08 22:33:31 -04:00
Matthew Brown
9880e2bede
Prevent leading-number constants in docblocks
2018-08-08 21:36:33 -04:00
Matthew Brown
6670dd31e1
Fix #927 - improve typing of object-like arrays containing class like strings
2018-08-08 21:31:13 -04:00
Matthew Brown
d9af167e38
Fix #931 - replace self in enum declaration where possible
2018-08-08 20:59:21 -04:00
Matthew Brown
55be2c3ce4
Fix #934 - allow numbers in class constant enums
2018-08-08 20:36:16 -04:00
Matt Brown
226aa27686
Fix issue resolving namespaced constants
2018-08-08 16:13:37 -04:00
Matt Brown
2636b194db
Fix #920 - support @var self properties in static method calls
2018-08-07 14:43:05 -04:00
Matt Brown
0304201d91
Fix #932 - allow obvious string vars to be used for includes
2018-08-07 13:17:23 -04:00
François Kooman
c54534c640
fix return values of imagettfbbox and imagettftext ( #929 )
2018-08-03 11:01:45 -05:00
Matthew Brown
37be70a465
Fix issue calling possibly magic method
2018-08-02 16:14:53 -05:00
Matthew Brown
c9a2ca9321
Allow output of get_parent_class to be used in new without check
2018-08-02 13:43:13 -05:00
François Kooman
b1e81c2c25
fix ldap_bind parameters, allow null for bind_rdn and bind_password
2018-08-02 13:14:41 -05:00
Tyson Andre
06abf52d94
Fix typos detected by misspell
( #924 )
...
Both of initiali[sz]e were used, z was more common.
2018-08-02 00:40:51 -04:00
François Kooman
9ebf748eb9
fix return value of headers_list ( #919 )
2018-08-02 00:40:10 -04:00
Matthew Brown
d3fc9a51e0
Improve callmap with PHPStan’s additions
...
cc @TysonAndre
2018-07-22 19:15:40 -04:00
Matthew Brown
b6372f8342
Analyse SimpleNameResolver too
2018-07-22 18:00:08 -04:00
Matthew Brown
4de33e509b
Fix linting issues
2018-07-21 22:55:16 -04:00
Matthew Brown
cc28ff7ad6
Fix #904 - scan all docblocks for possible @psalm-type annotations
2018-07-21 22:24:33 -04:00
Matthew Brown
200ea70334
Check that non-user-defined abstract methods are implemented, too
2018-07-21 20:50:42 -04:00
Matthew Brown
bc23f732a4
Fix #905 - ignore interface case when checking for extended interfaces
2018-07-21 20:38:55 -04:00
Matthew Brown
79d547d0a0
Add support for second dirname arg
...
Fixes #900
2018-07-21 20:22:42 -04:00
Matthew Brown
c97329da06
Fix #903 - make sure parent::foo is executed in context of method’s class
...
and not immediate parent
2018-07-21 20:01:58 -04:00
Matt Brown
ad3e449982
Allow rescanning of classes when we need more info
2018-07-18 11:44:01 -04:00
Matthew Brown
2af7ea05da
Fix #897 - understand static class comparisons in is_a
2018-07-17 22:50:30 -04:00
Matt Brown
6a06f06044
Improve API for disabling extensions and disable apc as well
2018-07-17 16:40:03 -04:00
Matt Brown
516b2eea5d
Fix SoapClient::__call param type
2018-07-17 14:16:22 -04:00
Matt Brown
73aa0df08a
Restart without grpc if running in threaded mode
2018-07-17 14:08:40 -04:00
Matthew Brown
9a9adf897d
Fix #896 - improve ReflectionParameter::getType return
2018-07-17 08:45:42 -04:00
Matthew Brown
0fa7cbeb02
Fix #895 - check __call magic method args
2018-07-16 22:48:53 -04:00
Matthew Brown
39870f97c4
Fix #894 - check magic methods with given return types
2018-07-16 20:32:16 -04:00
Matt Brown
92aa3f8117
Fix dumb regression
2018-07-16 16:07:18 -04:00
Matt Brown
b80440f1e3
Fix #893 - improve error message for missing intersection type method
2018-07-16 11:52:38 -04:00
Matthew Brown
95b9b8b51e
Remove PHP 5-incompatible things from SimpleNameResolver
2018-07-16 00:03:03 -04:00
Matthew Brown
e836f69ca2
Fix #502 - check for bad generator return in more places
2018-07-15 17:47:58 -04:00
Matthew Brown
1e54c61fde
Fix #18 - add support for @psalm-type
2018-07-15 17:23:17 -04:00
Matthew Brown
f9ba8d7167
Fix #573 - improve required param message
2018-07-13 20:17:29 -04:00
Matthew Brown
fee705f90c
Fix #489 - support @psalm-template
2018-07-13 19:09:35 -04:00
Matthew Brown
91f7cdf134
Fix #890 - improve reporting site for some method issues
2018-07-13 18:47:21 -04:00
Matthew Brown
1589b2a01e
Fix #269 - allow trigger_error to count as exit statement
2018-07-13 18:36:25 -04:00
Matthew Brown
4172952e8b
Fix #306 - add support for typing generators
2018-07-13 17:34:44 -04:00
Matthew Brown
a8a504c3b9
Fix #889 - allow variables defined in try
to avoid isset issues
2018-07-13 14:06:01 -04:00
Matthew Brown
677e6edcb1
Fix nullref
2018-07-13 09:58:35 -04:00
Matthew Brown
3a235ad757
Fix #887 - resolve get_class($c) === self::class to current class name
2018-07-13 09:52:15 -04:00
Matthew Brown
d41a9a8dcc
Fix #806 - allow specification of functions and static methods that exit
2018-07-12 23:26:08 -04:00
Matthew Brown
5ea8b86b7c
Resolve as many names as possible in the parsing stage
2018-07-12 21:25:06 -04:00
Matt Brown
7713c7a8d6
Use continue 2 in place of continue
2018-07-12 18:04:05 -04:00
Matt Brown
f6b15a4a5a
Fix #847 - only warn about LessSpecificReturnType when method is not overridden
2018-07-12 16:57:24 -04:00
Matt Brown
4f9d4b7094
Fix #885 - allow suppression of UndefinedMethod at method level
2018-07-12 12:12:28 -04:00
Matt Brown
c2bc8bde55
Fix #866 - prevent false positive inside do
2018-07-12 12:08:15 -04:00
Matt Brown
c498356f9d
Fix property map for static call prop
2018-07-11 13:01:03 -04:00
Matt Brown
8b3fa21b41
Fix #884 - don’t error on static calls that aren’t user defined
2018-07-11 12:05:50 -04:00
Matt Brown
42e1090647
Add support for static method call assertions
2018-07-11 11:32:12 -04:00
Matt Brown
661803a020
Fix #883 - add @psalm-assert-if-true support to methods
2018-07-11 11:22:07 -04:00
Matt Brown
0ef71a49cb
Fix #882 - allow STDOUT and STDERR as constants
2018-07-10 17:40:34 -04:00
Tyson Andre
66f6d4b1ea
Allow empty default of 0
for optional parameter in magic method ( #880 )
...
Fixes #879
`!= ''` will reject both null and '', but not `0`
2018-07-10 16:01:44 -04:00
Matt Brown
5bb5bb2476
Check this properties for redundant conditions
2018-07-10 12:32:53 -04:00
Matthew Brown
21001668df
Don’t double-quote string
2018-07-10 00:39:33 -04:00
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
Matt Brown
bbf48bbdfe
Fix #873 - allow unpacking of all iterables
2018-07-09 09:59:51 -04:00
Matthew Brown
3b12ce4a31
Fix #874 - add support for is_iterable
2018-07-09 08:31:43 -04:00
Matthew Brown
cd4bb75d80
Fix #871 - handle gettimeofday args
2018-07-07 20:35:24 -04:00
Matthew Brown
0d62431cfb
Fix #870 - improve magic method type handling
2018-07-07 00:06:05 -04:00
Tyson Andre
a3b1bebb5b
Fix misuse of preg_quote ( #869 )
...
1. Variable ids can contain slashes or dots, e.g. for `${'my/var'} = 2`
or psalm's local representation of properties or array indexes
(I forget which)
2. preg_quote's escape character should **always** be the same as the
pattern starting character.
Using DIRECTORY_SEPARATOR will fail to escape '/' on windows.
2018-07-06 19:16:31 -04:00
Matt Brown
e62b711c36
Fix docblock
2018-07-06 14:14:24 -04:00
Matt Brown
a887d09ca9
Fix #867 - make some system constant types more broad
2018-07-06 13:35:36 -04:00
Matt Brown
7e09f59825
Fix #868 - improve return type of version_compare
2018-07-06 13:09:05 -04:00
Matthew Brown
ced0aef34d
Clean out assertions before re-examining loop
2018-07-06 00:36:11 -04:00
Matthew Brown
8a4d7e12bd
Fix issues found by scanning PHPCS
2018-07-05 23:02:09 -04:00
Matthew Brown
c4fd6aa18d
Allow break/continue inside do
2018-07-05 21:03:44 -04:00
Matthew Brown
8bdeb5ed65
Fix #864 - only create intersection types when dealing with classes & interfaces
2018-07-05 19:46:33 -04:00
Matt Brown
71b2420c83
Fix #865 - support literals in return types
2018-07-05 17:25:26 -04:00
Matt Brown
af14d6982f
Fix #863 - MixedTypeCoercion is more appropriate in many cases
2018-07-05 10:11:04 -04:00
Matthew Brown
5cb23b7f47
Always scan class if autoloaded from same location
2018-07-04 15:33:48 -04:00
Matthew Brown
6090355241
Add possible fix for unevaluated classlikes
2018-07-04 14:32:58 -04:00