Matthew Brown
13497b8d2b
Break out parent and implemented class checks
2021-01-05 17:49:55 -05:00
Matthew Brown
e4b1a4fa55
Uncomment erroneously-commented return
2021-01-05 17:49:17 -05:00
orklah
c47230c690
Infer result of modulo 1 operation statically ( #4926 )
2021-01-03 16:56:04 +00:00
Lukas Bestle
245a331be3
Full support for $this
in @var
annotations ( #4922 )
...
Fixes #4916 .
2021-01-03 01:44:35 +00:00
Matthew Brown
7764a4ce6c
Fix #4912 - detect mismatching property type
2020-12-29 16:37:03 +00:00
Tyson Andre
00b42bf4f7
Check if included files are listed in mustBeIgnored ( #4911 )
...
Previously, when a file was included in `include()`, it was not subject
to ignoreFiles
Related to #4876
2020-12-29 14:05:17 +00:00
Matthew Brown
ddd99970a9
Fix #4901 - simplify mapping of template types within class
2020-12-29 12:24:33 +00:00
orklah
1d9987e0ed
fix phpdoc ( #4905 )
2020-12-29 11:42:41 +00:00
orklah
09fb141e49
Document lowercase-string when possible ( #4904 )
...
* document lowercase-string
* fix missing strtolower
2020-12-29 11:42:12 +00:00
orklah
3684ceff4c
Illegal offset ( #4865 )
...
* Illegal offset access
* add tests
* fix tests
2020-12-26 10:33:49 +00:00
Bruce Weirdan
89ff4282df
Allow assertions on static class properties ( #4833 )
...
* Minimal implementation for assertions on static properties
* Added inheritance tests
* Add support for `ClassName::$var`
* Import strpos() to keep phpcs happy
* Add support for conditional assertions on static properties
2020-12-21 17:05:44 +00:00
Matt Brown
6eae582763
Prevent mixed array offset in array creation
...
Fixes #4846
2020-12-16 08:18:18 -05:00
Matt Brown
c7087c150b
Fix #4848 - use better inference when incorrect array keys are passed
2020-12-16 08:07:57 -05:00
Matt Brown
4b12cd9e18
Fix #4837 - bind correct static class when checking mixin types
2020-12-14 22:51:32 -05:00
Matt Brown
e43f2259ea
Fix #4839 - undefined possibly set in by-reference should be treated as such
2020-12-14 16:57:48 -05:00
orklah
8974da5610
preserve analyzers until the end of file ( #4834 )
...
* preserve analyzers until the end of file
* remove unused variable
2020-12-13 01:17:13 -05:00
2e3s
d8d6811ed4
Memoize private inferred mutation-free methods ( #4832 )
2020-12-12 10:26:14 -05:00
Matt Brown
cc1c643168
Fix #4829 – don’t crash when yielding non-existent class
2020-12-11 10:04:28 -05:00
Matt Brown
a27c674cee
Add test for #4825
2020-12-10 13:51:49 -05:00
Matt Brown
8cae4047b0
Fix #4825 - check for finally var set
2020-12-10 11:48:43 -05:00
Matt Brown
2a92025737
Union types if stmt already has one
2020-12-10 01:40:20 -05:00
Matt Brown
b7a7e2fb87
Fix get magic property checks
2020-12-10 01:29:07 -05:00
Matt Brown
524084a64c
Tighten up rules arouund when mutation-free methods get memoised
2020-12-08 16:39:06 -05:00
Matt Brown
1e0bcc1876
Fix #4803 - always derive method params the same way
2020-12-08 11:27:51 -05:00
2e3s
e46c68b1e5
Overwrite memoized return type after sum-type candidate is calculated ( #4805 )
...
* Overwrite memoized return type after sum-type candidate is calculated
* Fix mismatched types
* Fix code style
2020-12-08 09:35:11 -05:00
Matt Brown
91ee4aeca3
Fix #4797 - sanitise assertion output of template result
2020-12-07 19:11:56 -05:00
Matt Brown
f5dd6e76f8
Fix #4802 - don’t clone context when analysing coalesce
2020-12-07 14:30:57 -05:00
Matthew Brown
d406d5b112
Fix typo
2020-12-07 01:32:18 -05:00
Matt Brown
e702e472fc
Support simple list assignment in foreach
...
Ref #4741
2020-12-06 19:14:52 -05:00
Bruce Weirdan
cd576f8e02
Adjust check for file modification time ( #4789 )
...
This solves the issue where Psalm didn't notice the files created in the
same second as the last run was started.
2020-12-06 12:40:55 -05:00
orklah
1901ea56de
Don't add link if the issue doesn't have a shortcode ( #4786 )
2020-12-06 11:29:05 -05:00
Matt Brown
9c0e9a3d7e
Taint all when conditional return is used
...
Ref #4792
2020-12-06 11:24:48 -05:00
Matt Brown
4d1aae43f9
Fix #4778 - remove already-initialized properties when checking initialisation
2020-12-06 11:07:59 -05:00
Matt Brown
cec8d7138f
Fix #4782 - don’t replace closure types with upper bounds when replacing class param types
2020-12-05 11:58:55 -05:00
Matt Brown
1bb8b73f99
Return earlier
2020-12-05 10:25:34 -05:00
Vincent Langlet
eb9d6f66ab
Fix support of extraFiles ( #4785 )
2020-12-05 09:54:05 -05:00
Matt Brown
ca915e5028
Fix redundancies
2020-12-04 15:10:50 -05:00
Matt Brown
4a0e2f543e
Fix implicit void closure not getting recognised
2020-12-04 13:16:05 -05:00
orklah
62d5ea83a1
Allow int casts if the type comes from calculation ( #4768 )
2020-12-03 23:15:07 -05:00
Matt Brown
0411049559
Mixed array access should mark vars as used just in case
2020-12-03 13:09:08 -05:00
Matt Brown
2feba22a00
Make more try vars potentially undefined
...
Fixes #4764
2020-12-03 11:44:10 -05:00
Matt Brown
51a92aa223
Fix interface property regression
2020-12-03 11:13:10 -05:00
Matt Brown
833f132cb3
Fix #4760 - prevent unpacked vars from breaking call when checking unitialised properties
2020-12-03 10:12:54 -05:00
Matt Brown
bef9ab37e6
Fix #4759 – don’t generate assertion when assigning to same-named variable
2020-12-03 09:42:26 -05:00
Denis Smetannikov
11576951f6
Update ExistingAtomicStaticCallAnalyzer.php ( #4761 )
...
The invalid syntax for PHP 7.1+
2020-12-03 09:24:34 -05:00
Matt Brown
1a5d5e4476
Simplify FunctionLikeDocblockScanner
2020-12-03 00:19:01 -05:00
Matt Brown
e2a2e8ee87
Break apart AtomicPropertyFetchAnalyzer::analyze
2020-12-02 23:37:29 -05:00
Matt Brown
2f00500c91
Improve message
2020-12-02 22:08:14 -05:00
Matt Brown
6f916553a8
Ref #4753 - allow int literals to inform key type
2020-12-02 17:13:45 -05:00
Matt Brown
db8a3ab846
Fix #4751 - allow MethodSignatureMismatch to be overridable when info comes from docblock
2020-12-02 15:13:28 -05:00
Matt Brown
e2bb02e93c
Don’t suggest a potential value that’s undefined
...
Fixes #4754
2020-12-02 14:49:30 -05:00
Matt Brown
f0876b86f4
Avoid false-positives while analysing memoised coalesce
2020-12-02 02:25:15 -05:00
Matt Brown
394eceb01c
Memoize coalesce expression in more scenarios
2020-12-02 02:15:17 -05:00
Matt Brown
928fdda00f
Don’t do new isset conversion on try-set vars
2020-12-02 01:47:49 -05:00
Matt Brown
1feca322d5
Fix loading imported functions
2020-12-02 00:52:35 -05:00
Matt Brown
5a200ca442
Fix assertions on unions
2020-12-01 21:12:03 -05:00
Matt Brown
61e374f33b
Fix null array access complaints
2020-12-01 20:10:48 -05:00
Matt Brown
1a629ccc82
Fix a few issues
2020-12-01 18:26:15 -05:00
Matt Brown
e7f9ce6da0
Break out RedundantCast issues
2020-12-01 17:25:45 -05:00
Matt Brown
2963efc9a5
Use fallback assignment type when the property doesn’t exist on the class
2020-12-01 16:59:44 -05:00
Matt Brown
f5494bc407
Fix typos caused by Macbook Pro’s bad keyboard
2020-12-01 14:14:09 -05:00
orklah
f0c0ac0616
handle return flag for a try/catch/finally ( #4746 )
...
* handle return flag for a try/catch/finally
* add tests for psalter
2020-12-01 12:55:27 -05:00
Matt Brown
c6d0561612
Fix nullref
2020-12-01 00:48:09 -05:00
Matt Brown
7295e28e20
Fix #4743 - simplify assertions generated from array_key_exists check
2020-11-30 22:10:17 -05:00
Matt Brown
6f86201f34
Break up AssignmentAnalyzer::analyze
2020-11-30 14:57:35 -05:00
Matt Brown
3b1fa58413
Break apart method as much as possible
2020-11-30 14:07:18 -05:00
Matt Brown
2427606563
Fix lint
2020-11-30 13:25:27 -05:00
Matt Brown
2204728824
Break apart NewAnalyzer::analyze
...
Ref #4714
2020-11-30 13:24:24 -05:00
Matt Brown
4baf143ff7
Break apart ArrayAssignmentAnalyzer::updateArrayType
...
Ref #4714
2020-11-30 13:08:42 -05:00
Matt Brown
5430effb2b
Break apart InstancePropertyAssignmentAnalyzer
...
Ref #4714
2020-11-30 12:09:09 -05:00
orklah
d59ad152a0
Remove fixable flag for Complexity issues ( #4742 )
2020-11-30 08:43:18 -05:00
Matt Brown
31e2522adb
Actually not a bug
2020-11-30 01:32:38 -05:00
Matt Brown
817db55140
Fix typo
2020-11-30 01:29:40 -05:00
Matt Brown
cf6dedc11d
Break up AssertionFinder methods
...
Ref #4714
2020-11-30 01:20:28 -05:00
orklah
a760a2418a
support shift and bitwise operations in constants ( #4740 )
2020-11-29 21:43:49 -05:00
Matt Brown
4d81682fdd
Fix #4731 - expand out class-bound generic types when evaluating instance method
2020-11-29 21:36:50 -05:00
Matt Brown
86b6d6a506
Fix #4733 - don’t replace template types when they’re defined on the same class
2020-11-29 19:12:22 -05:00
Matt Brown
601c1d8cd0
Expand out constants in param types earlier
2020-11-29 19:07:35 -05:00
Matt Brown
46b202731c
Fix check
2020-11-29 18:28:32 -05:00
Matt Brown
58b306b6e3
Ensure class template types are mapped to static methods where necessary
...
Ref #4733
2020-11-29 17:40:52 -05:00
Matt Brown
8da676f5bf
Improve param name
2020-11-29 17:26:42 -05:00
Matt Brown
ea314cc1c0
Simplify calling of replacer methods
2020-11-29 16:27:00 -05:00
Matt Brown
4d22723525
Break out replacement of templated types with their inferred result
2020-11-29 16:16:16 -05:00
Matt Brown
15a5bd5e29
Simplify storage and retrieval of extended template params
2020-11-29 15:05:32 -05:00
Matthew Brown
60ac109c01
Add RedundantPropertyInitializationCheck ( #4732 )
...
* Add RedundantPropertyInitializationCheck
* add documentation for RedundantPropertyInitializationCheck (#4734 )
Co-authored-by: orklah <orklah@users.noreply.github.com>
2020-11-29 11:57:20 -05:00
Matt Brown
0efd4ebd7d
Detect some erroneous issets
2020-11-29 09:26:39 -05:00
Matthew Brown
fd53192ad2
Fix redundant mappings
2020-11-28 21:05:31 -05:00
Matt Brown
8adc0918ae
Fix the bug
2020-11-28 09:55:40 -05:00
Matt Brown
de1fa03f77
Fix template type selection
2020-11-28 09:53:11 -05:00
orklah
e2030b4a1e
fix #3282 ( #4724 )
2020-11-28 09:03:03 -05:00
Matt Brown
4af7e818b2
Simplify ArrayFetchAnalyzer::getArrayAccessTypeGivenOffset
...
Ref #4714
2020-11-27 23:36:47 -05:00
Matt Brown
b717356f95
Simplify more things
2020-11-27 17:48:39 -05:00
Matt Brown
ffabce19c5
Add complex issue error
2020-11-27 17:02:37 -05:00
Matt Brown
73cd07a01f
Simplify FunctionCallAnalyzer
...
Ref #4714
2020-11-27 16:34:27 -05:00
Matt Brown
6db8132b4c
Simplify call analysers a bit
...
Ref #4714
2020-11-27 16:31:10 -05:00
Matt Brown
5dd4912a99
Simplify ArrayAnalyzer
...
Ref #4714
2020-11-27 14:19:55 -05:00
Matt Brown
1ce45516db
Don’t alter behaviour
2020-11-27 11:47:12 -05:00
Matt Brown
5f065d3d74
Turn template bound tuples into object
...
Ref #4714
2020-11-27 11:43:30 -05:00
Matt Brown
bf696bf82e
Add complexity function name echoing
2020-11-27 05:28:55 -05:00
Matt Brown
6de97e3779
Skip missing function params in taint analysis
2020-11-26 11:58:14 -05:00