Matthew Brown
950260a041
No erroneous UndefinedMethod when accessing sealed class
2020-03-11 18:27:07 -04:00
Matthew Brown
f128c8ffda
Fix overriding of mapped property type visibility
2020-03-11 17:41:05 -04:00
Matthew Brown
a5cf4dbaaa
Make exception properties protected
2020-03-11 15:43:15 -04:00
Matthew Brown
43d9361395
Break out more methods
2020-03-11 13:35:33 -04:00
Matthew Brown
89f6866893
Fix magic property test
2020-03-11 12:45:30 -04:00
Matthew Brown
50cddb5350
Break out purity checks
2020-03-11 12:24:25 -04:00
Matthew Brown
c5fa07920c
Fix improper property var calculation
...
Ref #1332
2020-03-11 11:03:27 -04:00
Matthew Brown
ef64e6e8eb
Improve abstract call handling
2020-03-11 10:36:39 -04:00
Matthew Brown
27598f508e
Fix too-long line
2020-03-11 10:18:53 -04:00
Matthew Brown
0d62fbdf98
Detect erroneous abstract static method calls
2020-03-11 10:18:40 -04:00
Matthew Brown
d2950af636
Break apart MethodCallAnalyzer a bit
2020-03-11 09:38:09 -04:00
Matthew Brown
1dc26afb27
Fix #2958 - prevent overriding final methods
2020-03-10 21:26:02 -04:00
Brown
d1fcbf38ae
Fix #2956 - treat Exception::getMessage as final and mutation-free
2020-03-10 15:12:55 -04:00
Brown
8527bb9861
Remove line in block
2020-03-10 13:29:39 -04:00
Brown
3cf562125e
Fix #2953 - ignore carriage returns when when parsing docblocks
2020-03-10 13:28:42 -04:00
Brown
0cfe565d0a
Fix #2952 - always be cloning
2020-03-09 18:59:56 -04:00
Brown
2a72990d62
Add back support for unused method checks
2020-03-09 18:55:35 -04:00
Brown
a5672db9f9
Avoid issue where caches haven’t caught up
2020-03-09 16:59:21 -04:00
Brown
1399b139fc
Fix #2951 - use reflection to identify trait when there’s more than one per file
2020-03-09 16:41:46 -04:00
leightonthomas
60fb3924bc
Fix #2914 - falsable functions who only expect true now produce errors
2020-03-09 14:25:18 -04:00
Brown
2c8688dd97
Don’t crash when conditionally defining classes with properties
2020-03-09 14:24:19 -04:00
Brown
04bcc32efb
Fix #2940 - fix array offset assignment under ??=
2020-03-09 14:09:41 -04:00
Brown
aa8d7be6e2
Add implements DateTimeInterface
...
Fixes #2948
2020-03-09 10:58:32 -04:00
Brown
3c416482ec
Fix #2932 - don’t crash when trying to expand callable object-like array
2020-03-09 10:56:37 -04:00
Brown
a0da7356e9
Fix #2935 - make handling of templated properties much less hacky
2020-03-09 09:59:02 -04:00
Brown
40a7a1156f
Fix #2930
2020-03-09 09:45:35 -04:00
Matthew Brown
5b7ab6a542
Fix coercion
2020-03-09 01:32:27 -04:00
Matthew Brown
3243819f1b
Fix #2941 - allow class-string<self> to be fleshed out
2020-03-09 01:29:16 -04:00
Matthew Brown
5b4ed6b516
Fix #2942 - support array_splice properly for numeric-keyed arrays
2020-03-09 01:15:52 -04:00
Matthew Brown
17afeae851
Fix support for bitwise or in constant expressions
2020-03-09 00:54:26 -04:00
Sergey Melesh
a5da866d97
Ignore exceptions already caught by previous catch
2020-03-08 20:19:56 -05:00
Ben Dusinberre
6d21520628
Remove --show-snippet support
2020-03-08 20:18:35 -05:00
Ben Dusinberre
ca2716878b
Remove unused use statement
2020-03-08 20:18:35 -05:00
Ben Dusinberre
c6dfa2b5b0
Add XML encoding, fix up info level
2020-03-08 20:18:35 -05:00
Ben Dusinberre
9ca05fbfa8
Don't trim ints
2020-03-08 20:18:35 -05:00
Ben Dusinberre
605342119e
Fix up element contents
2020-03-08 20:18:35 -05:00
Ben Dusinberre
3a5bc7d9c3
Keep incoming data structure
2020-03-08 20:18:35 -05:00
Ben Dusinberre
d5cd295e47
Honor show-snippet flag
2020-03-08 20:18:35 -05:00
Ben Dusinberre
2b17e8c39c
Honor report-show-info flag
2020-03-08 20:18:35 -05:00
Ben Dusinberre
15ea7bf357
Remove the rest of the invalid attributes
2020-03-08 20:18:35 -05:00
Ben Dusinberre
783dbfae9c
Remove duplicate testsuite element
2020-03-08 20:18:35 -05:00
Matthew Brown
0e60a1a223
Revert erroneous line
2020-03-06 19:31:39 -05:00
Matthew Brown
b999037263
Fix #2928 - properly expand out skipped template inheritance
2020-03-06 19:24:47 -05:00
Matthew Brown
352bd3f5c5
Remove redundant condition
2020-03-06 15:23:11 -05:00
Matthew Brown
766effb0db
Improve accuracy of diff generation
2020-03-06 13:48:59 -05:00
Matthew Brown
f3d7ed6de7
Remove var_dump
2020-03-06 13:15:52 -05:00
Matthew Brown
7f9e6b893e
Increase processor consumption
2020-03-06 13:13:18 -05:00
Matthew Brown
dc74f2b4de
Add specific cast
2020-03-06 13:05:55 -05:00
Matthew Brown
10b807b4f6
Fix reference generation from methods in --diff mode
2020-03-06 13:02:34 -05:00
Matthew Brown
a2a507166d
Fix #2923 - remove hack to fix a template issue
2020-03-06 09:42:23 -05:00
Matthew Brown
51bfc7c619
Only emit mixed issues for MissingClassPropertyType
...
Fixes #2388
2020-03-06 07:57:00 -05:00
Matthew Brown
7ea06c7b1a
Only emit PossiblyUndefinedVariable issue on variables
2020-03-05 23:40:47 -05:00
Matthew Brown
75a3412a42
Downgrade error when using unknown variable in mixed method
2020-03-05 21:24:08 -05:00
Matthew Brown
b2678d40aa
Revert "Fix #2909 - don’t treat args of unknown calls as possible by-reference vars"
...
This reverts commit 105fe012c4
.
2020-03-05 21:10:29 -05:00
Brown
09137b0a32
Fix #2918 - fix contradiction issue with templated equality
2020-03-05 16:21:41 -05:00
Philip Hofstetter
ab9c82e251
mark ftp_close as impure
...
in theory, all ftp_* functions are impure, but not marking them
encourages the good practice of checking the return value.
However, ftp_close(), while it's possible for it to fail, what good
would checking the return type do? How is one supposed to handle the
failure to close a stream in a way that affects future program flow?
2020-03-05 15:37:08 -05:00
leightonthomas
06f7df9974
Fix #1799 - support trailing commas in type aliases
2020-03-05 15:36:28 -05:00
Matthew Brown
8a1067e4e6
Add more dobclocks types for scanning
...
Fixes #2907
2020-03-05 00:58:51 -05:00
Matthew Brown
105fe012c4
Fix #2909 - don’t treat args of unknown calls as possible by-reference vars
2020-03-04 23:49:06 -05:00
Matthew Brown
1615612394
Fix #2910 - prevent ternaries from ever being considered valid reference
2020-03-04 22:30:53 -05:00
Thomas Gerbet
b40403d7b0
\sodium_memzero() sets to null the value of the given reference
...
While it is not mentionned in PHP manual \sodium_memzero() always sets
the given parameter to null [0].
[0] cb933d63c2/ext/sodium/libsodium.c (L512)
2020-03-03 19:34:20 -05:00
Matthew Brown
0f5b0fd65d
Fix location of traits
2020-03-02 23:07:21 -05:00
Matthew Brown
2cf2ead43b
Remove stray comma
2020-03-02 22:30:06 -05:00
Matthew Brown
c0c878cc9d
Don’t cache all traits
2020-03-02 22:27:54 -05:00
Brown
93d2d4d1a7
Add slash
2020-03-02 16:02:45 -05:00
Brown
86d52bbf4f
Remove unused code
2020-03-02 15:49:05 -05:00
Brown
ceebc9e81d
Only invalidate methods that call a removed trait
2020-03-02 15:26:57 -05:00
Brown
61ecd2a5fe
Limit constructor check invalidation
2020-03-02 11:20:52 -05:00
Matthew Brown
d5186308d0
Fix #2859 - trim carriage returns where necessary
2020-03-01 17:48:44 -05:00
Matthew Brown
6129d533d8
Fix #2879 - rename stubs to prevent issues in PHPStorm
2020-03-01 17:28:51 -05:00
Matthew Brown
88c4088bc2
Prevent self/static refs outside classes
...
Fixes #2895
2020-03-01 17:25:55 -05:00
Matthew Brown
2e6fe993a8
Fix #2890 - phpstorm.meta.php scanner should be insensitive to method names
2020-03-01 17:11:44 -05:00
Matthew Brown
f44c3488eb
Keep track of which arg a given template was assigned from
...
Fixes #2900 - We only care about the depth of a templated match when templating from a particular argument. The next argument should essentially start afresh
2020-03-01 12:27:18 -05:00
Jacob Dreesen
038e7c9ff8
Change return type of range() from array<int, ...> to list<...>
2020-03-01 10:56:27 -05:00
Matthew Brown
e0d555e203
Allow function names to passed in as strings for callable template resolution
2020-02-29 15:43:45 -05:00
Matthew Brown
ff9d774304
Mark storage as having docblock issues in more places
...
Ref #2891
2020-02-29 09:57:28 -05:00
Matthew Brown
2d6cf8a0b0
Get bindable params earlier, before replacing with extended ones
2020-02-27 23:10:26 -05:00
Matthew Brown
abb3800d20
Fix bad template replacement
2020-02-27 23:00:40 -05:00
Matthew Brown
39d6800531
Remove default
2020-02-27 21:54:19 -05:00
Matthew Brown
c565afde64
Fix method call after method_exists check
2020-02-27 21:46:58 -05:00
Matthew Brown
1f19aed31b
Fix support for replacing mocked types in own classes
2020-02-27 21:36:03 -05:00
Brown
748abaf02a
Add params required for 7.1
2020-02-27 18:56:33 -05:00
Philip Hofstetter
d315822bfa
make skipping of checks after invalid includes configurable
...
as suggested in the PR it's best to make the setting configurable.
In order not to break existing installations, we default to keeping the
old behaviour, but in a later version of psalm, we might change the
default.
2020-02-27 18:49:23 -05:00
Philip Hofstetter
f2277ebb6d
don't disable checks when includes can't be resolved
...
Any unresolvable include (even suppressed ones) would lead to some
subsequent tests being disabled as a side-effect.
this fixes #2817
2020-02-27 18:49:23 -05:00
Brown
35c1670602
Fix #2875 - treat intersections more similarly than before
2020-02-27 18:42:15 -05:00
Matthew Brown
eeb2858b30
Add additional fix for #2784
2020-02-27 08:56:39 -05:00
Brown
ea0a670230
Flesh out class constants in function call return type
...
Fixes #2884
2020-02-26 17:28:44 -05:00
kolja
f189b25b99
Fixed stub files with absolute paths not being loaded.
2020-02-26 17:13:40 -05:00
Brown
8a7feb5948
Add fallthrough comment
2020-02-26 17:07:21 -05:00
Brown
548d9fca2c
Add references to property-defining classes
2020-02-26 16:49:14 -05:00
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