1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-14 02:07:37 +01:00
Commit Graph

5022 Commits

Author SHA1 Message Date
Brown
f1dbd0863a Allow magic methods named "as"
Fixes #2881
2020-02-26 13:50:45 -05:00
Matthew Brown
9163878174
Switch exit codes 2020-02-26 09:33:07 -05:00
Matthew Brown
746f8d4973 Prevent returning named object where template return assumed 2020-02-24 23:14:16 -05:00
kolja
215f1c381e Moved code to get memory_limit in bytes to command functions since that is where it is used. 2020-02-24 21:19:16 -05:00
kolja
99e5ded20c Fixed code style issues. 2020-02-24 21:19:16 -05:00
kolja
326d1cb025 Satisfied psalm with new test. 2020-02-24 21:19:16 -05:00
kolja
14646305a6 Added function to read memory_limit ini setting always in bytes. 2020-02-24 21:19:16 -05:00
Brown
712806b452 Fix #2874 - understand doubly-inherited interface templates 2020-02-24 17:58:44 -05:00
Brown
234a6ba4b4 Suppress null check 2020-02-24 16:22:50 -05:00
Brown
ff7fbcda99 Fix #2871 - prevent keyed arrays from being interpreted as callables 2020-02-24 16:19:33 -05:00
Brown
0a8bb32115 Fix #2866 - prevent use of impure __toString via concatenation in pure contexts 2020-02-24 14:50:34 -05:00
Brown
3f226e2e86 Fix #2867 - treat echo as impure 2020-02-24 14:38:05 -05:00
Matthew Brown
f1a9b73a78 Fix message 2020-02-23 18:24:43 -05:00
Matthew Brown
ed4f4e35b8 Fix null checks 2020-02-23 18:20:59 -05:00
Matthew Brown
41e076e0ee Fix bad 2020-02-23 18:19:53 -05:00
Matthew Brown
618ae77846 Prevent implicit __toString method calls in a pure context 2020-02-23 18:18:25 -05:00
Matthew Brown
1abece4f7c Use more accurate types 2020-02-23 17:03:27 -05:00
Matthew Brown
d3f8e80c4a Move reference map generation into separate file 2020-02-23 14:53:31 -05:00
Matthew Brown
b01bc9ab12 Fix union-of-mixed array key creation 2020-02-22 21:13:14 -05:00
Matthew Brown
4dae5b3190 Prevent more mixed array keys 2020-02-22 20:52:39 -05:00
Matthew Brown
97a849b1be Fix #1311 - narrow scalar properly, exploding constituent types 2020-02-22 20:25:13 -05:00
Matthew Brown
2635e57cde Negation of numeric on array-key is fine too 2020-02-22 12:53:27 -05:00
Matthew Brown
6adf6a09f0 Explode array-key into int|numeric-string after test 2020-02-22 12:36:37 -05:00
Matthew Brown
ae1360a52f An array-key can be numeric 2020-02-22 12:34:27 -05:00
Matthew Brown
27fd76649c Prevent more array<mixed, ...> construction 2020-02-22 12:20:03 -05:00
Matthew Brown
6ad3d039df Prevent more array<mixed,...> creation 2020-02-22 12:12:40 -05:00
Matthew Brown
952045e2ba Fix return type checks 2020-02-22 11:28:24 -05:00
Matthew Brown
202fb7026a Convert explicit array<mixed, ...> to array<array-key, ...> 2020-02-22 11:04:58 -05:00
Matthew Brown
1a3129b0e0 Fix test condition 2020-02-22 10:53:30 -05:00
Matthew Brown
1c218c020e Fix #1684 - detect error in assertion on return type of direct call 2020-02-22 10:41:57 -05:00
Matthew Brown
a706f4d722 Fix #2242 - warn when using mutable dependencies 2020-02-22 10:04:46 -05:00
Matthew Brown
3cc4c2b37e Fix #2721 - only warn about deprecated classes exactly where they are used 2020-02-22 01:12:19 -05:00
Matthew Brown
db17c85dd6 Fix #2787 - make accessing undefined objectlike key an error 2020-02-22 00:29:59 -05:00
Matthew Brown
9f13341ef9 Fix #2827 - detect literal numeric values 2020-02-22 00:16:15 -05:00
Matthew Brown
4707b21227 Fix tests 2020-02-21 22:15:25 -05:00
Brown
7d99a15072 Fix #2805 - forbid passing in mutable class to mutation-free context 2020-02-21 18:25:35 -05:00
Brown
f4485cc529 Fix #2847 - use fully-qualified function name 2020-02-21 16:44:31 -05:00
Brown
ae08552f40 Add null check 2020-02-21 16:04:18 -05:00
Brown
443558ca49 Fix #2844 - resolve constant offset references 2020-02-21 15:56:30 -05:00
Brown
292a2359b3 Add slash 2020-02-21 15:44:26 -05:00
Brown
b51863fc9b Fix #2848 - allow casting templated types 2020-02-21 15:17:35 -05:00
Brown
f44a0f9f4c Fix #2849 - allow object-like templated array comparison 2020-02-21 15:13:07 -05:00
Matthew Brown
a2fbfc1c9e Fix a couple of bugs 2020-02-21 01:32:22 -05:00
Matthew Brown
d8b6467b1a Fix #2852 - no duplicatearraykey warning for non string-keyed arrays 2020-02-21 01:27:42 -05:00
Matthew Brown
9bdca3c706 Forbid array<mixed, ...> 2020-02-21 01:26:51 -05:00
Matthew Brown
af2ea1732b Fix #2857 - use correct location for byref vars 2020-02-21 00:42:52 -05:00
Matthew Brown
e5c262d7dc Add docblock_start and docblock_end properties to CodeLocation 2020-02-20 22:56:03 -05:00
Matthew Brown
31399b9fd5 Fix dumb errors 2020-02-20 22:48:29 -05:00
Matthew Brown
3b2c9bbce5 Use simple (array) cast 2020-02-20 22:45:14 -05:00
Jared Broughton
86472de160 Correct return type of array_map closure 2020-02-20 22:45:14 -05:00
Jared Broughton
236e4d5e28 Prevent TypeError when generating XML reports
The XML generator currently in use (LSS\Array2XML) expects a nested array structure. However, due to the recent introduction of the IssueData type to replace what was previously shaped arrays, Array2XML was getting an array of objects instead. It then proceeds to crash from (eventually) passing null to DOMNode->appendChild(). This commit maps the IssueData array back into the array of shaped arrays that Array2XML knew and loved.
2020-02-20 22:45:14 -05:00
Teemu Koskinen
1801420305 Most gd functions that output an image accept either a filename or a stream resource as the optional second parameter
The only exception is imagexbm, which only accepts a filename (and which is optional)
2020-02-20 13:47:47 -05:00
Matthew Brown
2e4154d76e Add better defaults and documentation 2020-02-18 20:30:37 -05:00
Matthew Brown
c9494c43a3 Hide mixed issues if totallyTyped="false" 2020-02-18 20:08:09 -05:00
Matthew Brown
23b9331f6d Hide mixed errors if your error level is >= 3 2020-02-18 19:57:38 -05:00
Matthew Brown
aea33824e6 Fix #1555 - allow phantom class constants 2020-02-18 19:46:05 -05:00
Brown
520b646ef6 Add suppressMixedIssues config flag to hide mixed issues 2020-02-18 17:23:48 -05:00
Matthew Brown
87d8947ff3 Fix phpcs 2020-02-18 15:08:32 -05:00
Tyson Andre
eadf2f8492 Improve the reported error when a worker crashes 2020-02-18 15:08:32 -05:00
Brown
0e23fab5d2 Detect bugs similar to that which caused #2832 2020-02-18 12:53:54 -05:00
Brown
9230b425e7 Ors can still be created directly from conditions 2020-02-18 12:12:34 -05:00
Brown
6e8088776d Use better return type for SimpleXMLElement::offsetGet 2020-02-18 10:58:56 -05:00
Brown
38cccb8aaf Fix #2831 - use correct name for mapping 2020-02-18 10:39:24 -05:00
Matthew Brown
201d54f232
Convert to string before comparison 2020-02-18 09:40:21 -05:00
Matthew Brown
9866b292a4 Suppress issue that appears in Windows 2020-02-17 23:19:47 -05:00
Matthew Brown
320f3ec863 Update level config name 2020-02-17 22:43:13 -05:00
Matthew Brown
a55686b6e4 Move to more appropriate location 2020-02-17 22:21:04 -05:00
Matthew Brown
aab8eed219 Fix Phar-scoped issue checks 2020-02-17 22:07:08 -05:00
Matthew Brown
0c2b10709e If no level or totallyTyped is given, use level 2 2020-02-17 22:06:55 -05:00
Matthew Brown
f49c896f94 Allow totallyTyped to control level 2020-02-17 22:06:46 -05:00
Matthew Brown
e48d2aef9c Improve handling when threads cannot be used 2020-02-17 22:06:36 -05:00
Matthew Brown
a2c2a55ae6 Update documentation 2020-02-17 22:06:28 -05:00
Matthew Brown
ced092874a Make config generation smarter 2020-02-17 22:05:58 -05:00
Matthew Brown
00afcda5e0 Fix #2824 - allow unpacking of non-arrays with template params 2020-02-17 19:54:11 -05:00
Matthew Brown
3561c7d5dc Make sure yield from expressions counted as used
Fixes #2823
2020-02-17 19:21:04 -05:00
Matthew Brown
cf977c3542 Don’t convert constant descriptions to lowercase 2020-02-17 18:19:33 -05:00
Matthew Brown
8dd49b1cbf Fix lowercase-string to constant string coercion 2020-02-17 17:58:36 -05:00
Matthew Brown
99a97f4085 Update issue levels 2020-02-17 16:32:16 -05:00
Matthew Brown
a33eac440b Add stdClass reference to file storage for (object) cast
Fixes #2826
2020-02-17 11:33:09 -05:00
Matthew Brown
01d3d9270f Change constant name and meaning 2020-02-17 00:04:46 -05:00
Matthew Brown
39afe9b4ff Add levels to every issue 2020-02-16 20:55:09 -05:00
Matthew Brown
d281a6796b Fix lagging comma 2020-02-16 18:26:24 -05:00
Matthew Brown
196a0a5c4e Replace issue data array with object 2020-02-16 18:24:40 -05:00
Matthew Brown
d3bfb96431 Fix #2808 - improve yield type discernment 2020-02-15 10:47:07 -05:00
Matthew Brown
bacc7f254c Remove unnecessary extension check 2020-02-15 10:42:29 -05:00
Matthew Brown
d0d0c019cd Fix aliasing 2020-02-14 22:39:07 -05:00
Matthew Brown
3feccc1f98 Fix tests 2020-02-14 22:24:39 -05:00
Matthew Brown
653353709a Use MethodIdentifier object instead of string 2020-02-14 20:54:26 -05:00
Matthew Brown
fb5a0c39cb Fix #2819 - improve negated assertions on templates 2020-02-14 11:18:47 -05:00
Matthew Brown
422bd25f04
Maybe fix indentation 2020-02-13 19:33:47 -05:00
Matthew Brown
3efe271819
Remove blank line 2020-02-13 18:36:37 -05:00
Matthew Brown
95e1bc0c48
Fix line breaks 2020-02-13 18:32:40 -05:00
Matthew Brown
477d38e6eb
Suppress issue 2020-02-13 18:20:24 -05:00
Brown
b87161785d Be even more permissive 2020-02-13 17:58:15 -05:00
Brown
210d65d0d6 Add a few lowercase-string types 2020-02-13 17:52:23 -05:00
Brown
8989737e51 Fix #2775 - use lowercase strings in a couple more places 2020-02-13 17:44:16 -05:00
Brown
bba44e5354 Add interpolation support 2020-02-13 17:37:52 -05:00
Brown
bc0ccbda99 Add better inference for lower-cased methods 2020-02-13 17:30:00 -05:00
Brown
1c42875179 Support lowercase-string and warn about unnecessary calls to strtolower 2020-02-13 16:38:58 -05:00
Brown
e934343d7f Fix #2765 - properly fix namespaced @throws self 2020-02-13 13:01:53 -05:00
Matthew Brown
305372e0e1 Add docblock return type as --diff dependency 2020-02-13 10:39:04 -05:00
Philip Hofstetter
395cf587d3 add plugin hook to be called after every function call
compared to AfterFunctionCallAnalysisInterface which gets only called
after a call to a function declared within the project, a plugin
implementing AfterEveryFunctionCallAnalysisInterface will get called for
every function call, including calls of PHP builtins.

On the other hand, this interface doesn't allow modification of the code
nor tweaking the return type, but it's still useful for accounting
purposes and for depreacting calls to PHP builtins

this fixes #2804
2020-02-13 09:10:24 -05:00
Matthew Brown
7d88100ad3 Docblock-provided type is not inferred 2020-02-12 11:34:54 -05:00
Claas Augner
ba94c8cea8 Fix #2799 - DOMNode::$parentNode is nullable 2020-02-12 09:20:01 -05:00
Matthew Brown
f64cdd2ca2 Fix #2798 - strip out trailing commas in object-like @return types 2020-02-12 09:18:43 -05:00
Matthew Brown
07a53f6b81 Fix #2789 - Numeric should not be a reserved class name 2020-02-11 22:34:34 -05:00
Bruce Weirdan
a23dd9f97d Fixed vimeo/psalm#2792 2020-02-11 22:21:54 -05:00
Brown
f141f7c526 Improve --diff checks by including trait-using classes in dependents 2020-02-11 16:39:33 -05:00
Matthew Brown
7639e179c4 Fix return type for Ds\Vector::map 2020-02-10 21:09:07 -05:00
Brown
2abe76d3c2 Fix assertion generation 2020-02-10 17:27:46 -05:00
Brown
d8f5ad190b Improve invalidation of inherited properties 2020-02-10 17:03:51 -05:00
Brown
41af71556d Fix #2785 - parse wildcards in variables better 2020-02-10 15:30:06 -05:00
Brown
89a0b101e4 Fix #2784 - no crash when get_class arg is mixed 2020-02-10 14:44:33 -05:00
Matthew Brown
074780547d Fix #2780 - filter int on more values 2020-02-09 23:58:37 -05:00
Matthew Brown
47ffb59241 Fix #2764 - iterate through all possible template types where necessary 2020-02-09 18:11:50 -05:00
Markus Staab
45468d801f Dont corrupt checkstyle xml 2020-02-09 15:54:37 -05:00
Matthew Brown
d0ac709b70 Use more robust, if slower, mechanism that’s intersection-safe 2020-02-09 15:34:50 -05:00
Matthew Brown
14f8fb8ecd Fix two redundant asserts 2020-02-09 11:45:43 -05:00
Matthew Brown
3559fdd6b3 Fix #2742 - prevent paradoxes in assert calls 2020-02-09 11:42:41 -05:00
Matthew Brown
4de6f5c4ec Fix #2442 - using asserting after a MixedAssignment removes that error 2020-02-08 23:01:45 -05:00
Matthew Brown
5f4d797fe1 Fix #2772 - add support for multiple array_map function param inference 2020-02-08 12:17:57 -05:00
Matthew Brown
b439a573ce Empty is also the bottom type 2020-02-08 11:40:22 -05:00
Matthew Brown
b26deb434d Fix #2771 - replace empty params with generic equivalents
Ref #2755
2020-02-08 11:17:24 -05:00
Bruce Weirdan
d99f23eb45 Fix #2761 2020-02-07 12:51:40 -05:00
Brown
dcc855de95 Fix #2739 - specify wildcards in constants 2020-02-07 10:54:57 -05:00
Matthew Brown
4e36f6caf5 Add explicit paths for included files
Fixes #2757
2020-02-07 09:06:15 -05:00
Matthew Brown
966336a475 Improve byref array handling 2020-02-06 23:52:27 -05:00
Matthew Brown
da541dbb51 Remove some unnecessary errors 2020-02-06 23:10:18 -05:00
Brown
e567f8c728 Fix #2752 - string casts can be implicit method calls, don’t remove automatically 2020-02-06 21:05:16 -05:00
Brown
23f8967fb5 Fix conditional class-string template replacement 2020-02-06 19:40:18 -05:00
Brown
2a0dd48dcd Fix bad type 2020-02-06 17:31:17 -05:00
Brown
d5f71bf529 Localise template checks to class being tested 2020-02-06 16:38:45 -05:00
Brown
54efbbe831 Fix bad assertion 2020-02-06 16:32:26 -05:00
Brown
9af12932b5 Add slash 2020-02-06 15:09:34 -05:00
Brown
6116b457ed Port over more fixes from template match refactor 2020-02-06 15:07:57 -05:00
Brown
0fd0d01d2b Improve class-string templating 2020-02-06 14:35:36 -05:00
Brown
638e90356a Add slash 2020-02-06 11:58:39 -05:00
Brown
a16e03d992 Fix #2756 - narrow assertion templated type 2020-02-06 11:49:15 -05:00
Brown
ffd04132ce Fix #2754 - use ext-ds stubs from PHPStan 2020-02-06 10:38:10 -05:00
Benjamin Morel
b486bd4c78 PDOStatement::fetchColumn() can return any scalar 2020-02-05 11:46:01 -05:00
Brown
50fc50fab0 Fix #2751 - allow static methods to inherit class templates 2020-02-05 11:19:40 -05:00
Matthew Brown
bbdb1254ad Add line break 2020-02-05 08:51:11 -05:00
Lars Moelleken
759cfe4555 add more impure function calls 2020-02-05 08:51:11 -05:00
Brown
8fb810350a Don’t cache no-effects hashes when checking for initialisations 2020-02-04 17:53:26 -05:00
Brown
4c83ca75b3 Fix #2738 - clear out property issues when modifying constructors 2020-02-03 16:43:25 -05:00
Matthew Brown
b3f6b56f9c Add support for @psalm-readonly-allow-private-mutation 2020-02-02 15:56:08 -05:00
Matthew Brown
93fc1b1cc7 Fix #2729 - allow mutation of otherwise-readonly properties 2020-02-02 15:35:12 -05:00
Matthew Brown
8d7fb2b415 Add config flag to support properties without a magic getter 2020-02-02 14:23:38 -05:00
Thomas Gerbet
6f6e26580a Remove non-existent $serverctrls parameter for \ldap_bind()
In a8e58b0ba0 a `$serverctrls` parameter
was incorrectly added to the \ldap_bind() function.

See php/doc-en#20.
2020-02-02 12:34:28 -05:00
Matthew Brown
43c7b00cd0 Fix #2734 - allow is_a to operate on templated class-strings 2020-02-02 12:26:28 -05:00