Matthew Brown
c6a5781e78
Break apart FunctionCallAnalyzer::analyze method
2020-03-12 11:05:50 -04:00
Matthew Brown
99ca359f8b
Break apart large methods
2020-03-12 01:19:11 -04:00
Matthew Brown
96fbcd5a64
Break out more methods
2020-03-11 23:38:49 -04:00
Matthew Brown
329c9afdf5
Actually remove method
2020-03-11 23:20:19 -04:00
Matthew Brown
973703e396
Break out template param collection
2020-03-11 23:15:15 -04:00
Matthew Brown
9732697e45
Break out method call purity checks
2020-03-11 23:09:09 -04:00
Matthew Brown
bfb919d26a
Break out methods into their own classes
2020-03-11 23:04:52 -04:00
Matthew Brown
321f1a5e2f
Cache trait nodes
2020-03-11 22:14:21 -04:00
Matthew Brown
8f28f41399
Improve magic checks
2020-03-11 18:42:41 -04:00
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
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
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
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
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
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
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