1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-14 10:17:33 +01:00
Commit Graph

8613 Commits

Author SHA1 Message Date
orklah
ebffd5258a
Merge pull request #7433 from zoonru/maximum_shaped_array_size
Add configuration for maximum size of shaped array
2022-03-15 21:19:05 +01:00
Oliver Hader
2b3753676b
Avoid json_encode when serializing non-UTF8 literals
`\Psalm\Internal\Clause::$hash` basically holds a hash on
arbitrary input literals, used for later comparison. Using
`json_encode` fails when dealing with non-UTF8 literals,
which has been replaced by plain PHP `serialize`.

Resolves: #7771
2022-03-15 10:39:58 +01:00
orklah
32f10c392d
Merge pull request #7788 from AndrolGenhald/attribute-analysis-improvements
More attribute fixes.
2022-03-14 21:11:19 +01:00
AndrolGenhald
11f51f4c54 Use key-of instead of literal int union. 2022-03-14 15:05:33 -05:00
AndrolGenhald
08d4d797ef More attribute fixes. 2022-03-14 14:15:07 -05:00
orklah
83c534414e
Merge pull request #7787 from orklah/callable-string
restore callable-string Id
2022-03-14 20:11:56 +01:00
orklah
d1ce74bc79 fix name 2022-03-14 20:07:03 +01:00
Matthew Brown
e578413d3f Calculate upper bound ahead of time
This prevents generating large numbers of clauses we'll have to ignore anyway
2022-03-14 11:32:51 -04:00
Matthew Brown
77f47ede92 Remove ref to unused function 2022-03-14 10:40:46 -04:00
Matthew Brown
040122403d Clause sort should be normal, not reversed 2022-03-14 10:38:42 -04:00
Matthew Brown
8d5664d539 Remove unused line 2022-03-12 23:23:46 -05:00
Matthew Brown
76119237cc Fix #7776
When a new clause contains tautology it can be disregarded entirely
2022-03-12 23:21:42 -05:00
Matthew Brown
64d7792479 Fix too-long line 2022-03-12 22:37:06 -05:00
Matthew Brown
9c8e088917 Fix style 2022-03-12 22:33:58 -05:00
Matthew Brown
ed4782e0e0 Improve performance of large formula operations 2022-03-12 22:31:12 -05:00
Matthew Brown
427eecdcd8 Remove unnecessary switch statement code 2022-03-11 22:02:55 -05:00
fluffycondor
7240f01154
Code style 2022-03-11 23:02:11 +00:00
fluffycondor
cb5231463c
Make error message more verbose 2022-03-11 22:58:41 +00:00
fluffycondor
6bc90fa0a9
Fix error messages 2022-03-11 22:54:30 +00:00
Semyon
9beb0a62b2 Forbid min bound greater than max bound in int range 2022-03-11 17:26:59 +03:00
Semyon
a7e98f4bfc Forbid any non literal int in int range (except min and max named objects) 2022-03-11 17:26:07 +03:00
Matthew Brown
f0b214265c Remove slash 2022-03-07 16:09:03 -05:00
Matthew Brown
2a9ea7ea71 Support Stringable before PhpToken autoloading 2022-03-07 16:08:24 -05:00
Matthew Brown
4311386122 Add a bunch of necessary fixes to get phar scoping working on PHP 7.4 2022-03-07 16:06:38 -05:00
Matthew Brown
3dfe31b334 Fix path once more 2022-03-07 15:37:22 -05:00
Matthew Brown
03cd1c79e6 Fix path 2022-03-07 15:34:32 -05:00
Matthew Brown
34d6ef3b90 Use direct path 2022-03-07 15:33:16 -05:00
Matthew Brown
2034fc3f8b Hard-load stringable interface 2022-03-07 15:31:10 -05:00
Matthew Brown
4b0667bb14 Group some functionality together 2022-03-07 14:40:28 -05:00
Mateusz Cholewka
483d35980a check is value for sure is null 2022-03-07 14:07:16 +01:00
Mateusz Cholewka
d53f57b5f7 wrap row in union again
From: https://github.com/vimeo/psalm/pull/7760#discussion_r820264671

$result_element_type should be a Union, $row_shape is an Atomic
(a part of a Union). new Union([$row_shape]); should be ok
2022-03-06 21:28:48 +01:00
Mateusz Cholewka
56e65fd5ba skip creating unnecessary union 2022-03-06 17:07:56 +01:00
Mateusz Cholewka
88d49b9923 provide array column type for null column 2022-03-06 15:44:56 +01:00
Matthew Brown
9f9fefe7d6 Simplify loop logic a little 2022-03-02 18:49:57 -05:00
Matthew Brown
766fc174a3 Remove unnecessary $child_stmt 2022-03-02 17:34:56 -05:00
Matthew Brown
54edbdabf6 A little light refactoring 2022-03-02 17:27:58 -05:00
Abdul Malik Ikhsan
9666b90e41
Register openssl_sign function to impure functions
openssl_sign has $signature parameter that by reference that can re-used
2022-03-02 22:59:12 +07:00
orklah
cb158726a0
Merge pull request #7359 from Patrick-Remy/feat/properties-of
feat(types): add properties-of<T> type
2022-02-28 19:28:21 +01:00
Matthew Brown
569e97d5e9 Minor fix for single parent inheritance 2022-02-27 23:57:44 -05:00
Matthew Brown
d17d82e4e3 Simplify template population 2022-02-27 23:51:51 -05:00
orklah
2f3c150690 merge fixes 2022-02-26 21:28:15 +01:00
orklah
0fe6eaf5d9 Merge remote-tracking branch 'upstream/4.x' into upstream-master13 2022-02-26 21:26:59 +01:00
orklah
fc2c6ab4d5
Merge pull request #7727 from AndrolGenhald/attribute-analysis-improvements
Attribute analysis improvements
2022-02-24 21:34:05 +01:00
orklah
26bfc95b13 allow SimpleTypeInferer to infer non empty lists 2022-02-24 20:57:29 +01:00
Patrick Remy
51f3b9869b
docs: add properties-of type to plugins type system 2022-02-24 18:50:35 +01:00
AndrolGenhald
c82abe3017 Fix trailing commas for PHP 7. 2022-02-23 22:30:50 -06:00
AndrolGenhald
5f9a8c9240 Fix types. 2022-02-23 22:12:32 -06:00
AndrolGenhald
43764f0c3d Add Reflection getAttributes analysis. 2022-02-23 22:12:32 -06:00
AndrolGenhald
1387f94324 Attribute analysis improvements. 2022-02-23 22:12:32 -06:00
Patrick Remy
be49037d70
feat: add template support to properties-of<T> 2022-02-23 21:30:09 +01:00
orklah
3a85f49268
Merge pull request #7673 from VincentLanglet/pdoException
PDOException extends RuntimeException and can use int code errors
2022-02-23 13:45:57 +01:00
Patrick Remy
d81c74eb62
style: fix linting issues and failing tests 2022-02-22 20:13:24 +01:00
Bei Xiao
c9666bbeb5 Reduce method complexity 2022-02-22 20:50:43 +02:00
Patrick Remy
6e783d863d
feat: ignore static properties in properties-of<T> 2022-02-22 19:49:03 +01:00
Bei Xiao
6a3b5679fe Support interfaces extending enums 2022-02-22 16:04:56 +02:00
Aaron Piotrowski
97b5685f55
Fix first-class callable in loop 2022-02-21 18:37:20 -06:00
Patrick Remy
9c6deacc69
feat: expand properties-of to keyed array 2022-02-21 23:02:27 +01:00
Patrick Remy
30fac906c6
feat(types): add properties-of<T> type 2022-02-21 21:15:02 +01:00
orklah
1a5b120081
Merge pull request #7713 from AndrolGenhald/bugfix/self-in-attribute
Use current context when analyzing attributes
2022-02-21 18:50:22 +01:00
AndrolGenhald
04c0db5aff Use current context when analyzing attributes (fixes #7710). 2022-02-21 10:38:50 -06:00
m1ke
628bf584c2 Alter config file to actually load threads param 2022-02-21 11:07:21 +00:00
Bruce Weirdan
997bded2e3
Merge branch '4.x' into upstream-master 2022-02-21 01:08:21 +02:00
orklah
b8cda9eb00
Merge pull request #7684 from AndrolGenhald/bugfix/minor-reference-fixes
Fix some minor issues with references.
2022-02-20 23:21:56 +01:00
Bruce Weirdan
d7d846edc8
Merge branch '4.x' into upstream-master 2022-02-20 02:31:15 +02:00
Bruce Weirdan
97bd81cf5e
Merge pull request #7699 from AndrolGenhald/bugfix/int-range-unpacking 2022-02-19 00:04:32 +02:00
AndrolGenhald
9310a4ff5a Fix issues with int range unpacking and with min/max. 2022-02-18 15:55:26 -06:00
Bruce Weirdan
6a68287700
Merge pull request #7696 from AndrolGenhald/improve-bool-to-int-cast 2022-02-18 22:17:29 +02:00
AndrolGenhald
525a86e19d Improve bool to int casting. 2022-02-18 13:22:17 -06:00
AndrolGenhald
c1077f32d3 Improve documentation for InvalidGlobal to explain that it's sometimes valid. 2022-02-18 11:36:25 -06:00
AndrolGenhald
0476ca7844 Fix trailing commas for PHP < 7.3. 2022-02-18 08:44:51 -06:00
AndrolGenhald
ea2f452c25 Analyze attribute statements instead of constructing virtual statements. 2022-02-18 08:18:34 -06:00
a.dmitryuk
8e1e0d1e5e style-ci 2022-02-18 10:33:35 +07:00
a.dmitryuk
dc8764153e Throw exception if file_put_contents failed 2022-02-18 10:05:23 +07:00
AndrolGenhald
d09e420939 Add @psalm-check-type and @psalm-check-type-exact.
I initially added these as part of my TryAnalyzer rewrite to allow testing complicated `finally` types like this:
```
$foo = 1;
try {
        $foo = 2;
} catch (Exception $_) {
        $foo = 3;
} finally {
        $bar = $foo;
        /** @psalm-check-type-exact $bar = 1|2|3 */;
}
/** @psalm-check-type-exact $bar = 2|3 */;
```
Using the `'assertions'` in tests doesn't work since the type is different inside the `finally`.

I decided to extract the new annotation from the rest of my changes and do a separate pull request since I think others may find it useful, and it should be much easier to review than the entire TryAnalyzer rewrite.
2022-02-17 10:37:13 -06:00
AndrolGenhald
8f710cc37f Fix crash when data_flow_graph is null. 2022-02-17 10:34:34 -06:00
AndrolGenhald
580278d323 Fix some minor issues with references.
References assigned to properties on `$this` should never be unused.
Using a `@var` docblock before a reference should be allowed if it targets a variable instead of the assignment statement.
2022-02-17 09:31:33 -06:00
Matthew Brown
6af3b502df Remove unnecessary array assignment 2022-02-16 13:04:23 -05:00
Bruce Weirdan
e47752afb4
Merge pull request #7666 from AndrolGenhald/more-class-const-improvements
More class const improvements.
2022-02-16 03:43:37 +02:00
87d9a01f78 Add configuration for maximum size of shaped array 2022-02-15 14:09:08 +01:00
eb3df40fbb
Add option to disable @var parsing everywhere except for properties. 2022-02-15 10:04:56 +01:00
Vincent Langlet
694157b2e0 PDOException extends RuntimeException and can use int code errors 2022-02-14 21:04:10 +01:00
AndrolGenhald
cc2334f40d More class const improvements.
Add InvalidClassConstType issue as alternative to LessSpecificClassConstType when type isn't contravariant.
Handle final class consts (#6395).
Use double quotes for types in class const issues.
2022-02-13 17:19:25 -06:00
orklah
1142c818c2 Merge remote-tracking branch 'upstream/4.x' into upstream-master9 2022-02-14 00:10:28 +01:00
orklah
b796f4558a
Merge pull request #7665 from orklah/matchcount
fix count with match on arrays
2022-02-13 22:49:31 +01:00
orklah
97a6abd823 don't anonymize call to count to allow assertions on count to be retrieved 2022-02-13 22:38:38 +01:00
AndrolGenhald
fd0ecf2528 Rename variable to be consistent with existing convention. 2022-02-13 15:34:21 -06:00
AndrolGenhald
32c389482c Fix issue with nested try block and add more tests. 2022-02-13 15:30:06 -06:00
AndrolGenhald
7b1599d783 Fix false positive for unused variable in try (fixes #7613). 2022-02-13 15:14:59 -06:00
orklah
8a49caccac
Merge pull request #7663 from orklah/never2
Consistency for empty reconciliations
2022-02-13 20:01:45 +01:00
orklah
093d9b2821 allow use of an empty reconciliation if the type is from docblock 2022-02-13 19:44:12 +01:00
orklah
5f1b796af9 redundant condition 2022-02-13 19:38:44 +01:00
orklah
586c70c8d3 Reconcile IsNotType between EnumCase and NamedObject 2022-02-13 19:38:44 +01:00
orklah
cf25363fa1 empty reconciliation should return never or mixed depending of the source of the type 2022-02-13 19:36:09 +01:00
orklah
59d3d2aa31
Merge pull request #7655 from orklah/enumCollapsing
Enum collapsing
2022-02-13 11:01:07 +01:00
orklah
954884eb48 consistency between TernaryAnalyzer and IfElseAnalyzer 2022-02-13 10:52:22 +01:00
Bruce Weirdan
52ad607c96
Merge pull request #7661 from weirdan/fix-array_fill_keys 2022-02-13 11:05:05 +02:00
Bruce Weirdan
edddc87002
Merge branch '4.x' into upstream-master 2022-02-13 07:14:23 +02:00
Bruce Weirdan
4ee8a80a17
Use array_fill_keys
There was a number of calls to `array_map(fn()=>true, array_flip($array))` that got replaced with a simpler (and more performant) `array_fill_keys($array, true)`
2022-02-13 07:09:28 +02:00
Bruce Weirdan
dc776d3ada
Suppress false-positive 2022-02-13 00:48:58 +02:00
Bruce Weirdan
45a19b3f3c
Honour global function suppressions for UndefinedFunction
Fixes vimeo/psalm#7610
2022-02-13 00:22:55 +02:00
orklah
60feb5fd71 allow collapsing enum cases under named object in combiner 2022-02-12 20:31:39 +01:00
orklah
1d224cebf7
Merge pull request #7651 from orklah/new
remove totallyTyped
2022-02-12 10:29:23 +01:00
orklah
a915ef5853 also remove a from_calculation flag which was scheduled for removal in Psalm 5 2022-02-12 10:19:39 +01:00
orklah
85fca56850 remove totallyTyped 2022-02-12 10:19:14 +01:00
orklah
6355597250 fix CS 2022-02-12 10:05:53 +01:00
orklah
e6d491a4ab Merge remote-tracking branch 'upstream/master' into upstream-master7 2022-02-12 10:01:08 +01:00
orklah
fac55576ab Merge remote-tracking branch 'upstream/4.x' into upstream-master7 2022-02-12 09:59:55 +01:00
orklah
a3852b8a55
Merge pull request #7650 from orklah/totallytyped
deprecate totallyTyped
2022-02-12 09:56:39 +01:00
orklah
dbf47b16c3 deprecate totallyTyped 2022-02-12 09:30:37 +01:00
orklah
c13a536386
Merge pull request #7614 from kkmuffme/add-phpredis-stubs
add phpredis stubs
2022-02-11 23:15:48 +01:00
sasezaki
c46818ac24 Removed unnecessary var annotation 2022-02-11 22:51:31 +01:00
sasezaki
d0baffb534 DOMElement instead of DomElement - https://php.net/DOMElement
to avoid composer-require-check reports false-positive,
just did - find src/ -type f -exec sed -i -e 's/DomElement/DOMElement/g' {} \;
2022-02-11 22:51:31 +01:00
m1ke
92aedd6f7f Fix cherry pick issues 2022-02-11 11:27:01 +00:00
m1ke
fc694d7a98 Allow psalm to load threads from the config 2022-02-11 11:23:17 +00:00
m1ke
a688bd6da3 Use config threads if lower than detected threads 2022-02-11 11:23:09 +00:00
m1ke
810880c71b Alter order of precedence and upated docs to match 2022-02-11 11:12:36 +00:00
Bruce Weirdan
11e60fa261
Merge branch '4.x' into upstream-master 2022-02-11 03:51:48 +02:00
Matthew Brown
6d057669fc
Fix #6683 by improving simplification of CNF (#7631) 2022-02-10 19:37:42 -05:00
Matthew Brown
b49b5f1c20 Make error message for truthy/falsy more accurate 2022-02-10 18:46:22 -05:00
Bruce Weirdan
161519883a
Merge pull request #7623 from weirdan/finalize-types 2022-02-11 00:27:10 +02:00
Matthew Brown
c885dbcbe0 Prevent duplicate type comparison errors 2022-02-10 01:04:14 -05:00
Bruce Weirdan
7c344366a3
Fix RedundantCondition 2022-02-10 01:44:50 +02:00
Bruce Weirdan
26e238cdc5
Finalize types nodes 2022-02-10 01:44:25 +02:00
orklah
9984397766
Merge pull request #7622 from orklah/assertions
consistency in AssertionFinder
2022-02-09 22:53:28 +01:00
orklah
511177556b only remove int from array-key if we're dealing with a general Int 2022-02-09 22:46:41 +01:00
orklah
a236aa2a41 only remove int from array-key if we're dealing with a general Int 2022-02-09 22:44:26 +01:00
Matthew Brown
2eca28c912 Remove more unused code from LoopAnalyzer 2022-02-09 16:37:15 -05:00
orklah
1c74774c40 consistency 2022-02-09 21:48:33 +01:00
orklah
0f1efa9079 documentation 2022-02-09 21:15:22 +01:00
Matthew Brown
5575fa1e32 Remove unnecessary method 2022-02-09 12:18:15 -05:00
Office
432d0be658 load phpredis stubs 2022-02-09 15:56:51 +01:00
Bruce Weirdan
21e6371ce2
Strip colours from success message
Fixes vimeo/psalm#7619
2022-02-09 15:35:40 +02:00
Matthew Brown
9d8b6d641b Remove more unused code 2022-02-08 18:20:14 -05:00
Matthew Brown
48b702b76a Remove some unnecessary code 2022-02-08 17:12:18 -05:00
Matthew Brown
e130dd9b1c Fix too-long line 2022-02-08 16:28:21 -05:00
Matthew Brown
e35e6fe992 Improve naming of variables 2022-02-08 16:25:33 -05:00
Matthew Brown
457abc6e13 Don’t subtract int from array-key if not equality 2022-02-08 11:24:05 -05:00
Matthew Brown
13824d5a33 Fix awkward workaround for loop assignment map 2022-02-08 10:59:29 -05:00
Matthew Brown
eda8e04a81 Narrow graph arrayfetch dataflow 2022-02-08 10:59:29 -05:00
Bruce Weirdan
b25a93e753
Finalize virtual nodes 2022-02-07 02:05:47 +02:00
Bruce Weirdan
958d1ca695
Finalize storages 2022-02-06 23:09:03 +02:00
Bruce Weirdan
a331ac0b21
Finalize issues 2022-02-06 00:27:18 +02:00
Bruce Weirdan
3e837cabd0
Finalize (and internalize) more classes 2022-02-05 23:51:03 +02:00
Tomasz Kusy
124aa22fe9 Resolve __DIR__ / __FILE__ when const/variable is used for include CS fix fix fix :) 2022-02-04 20:27:45 +01:00
Tomasz Kusy
8da45aa7d8 Resolve __DIR__ / __FILE__ when const/variable is used for include CS fix fix 2022-02-04 20:26:06 +01:00
Tomasz Kusy
b73f2c96d8 Resolve __DIR__ / __FILE__ when const/variable is used for include CS fix 2022-02-04 19:43:55 +01:00
Tomasz Kusy
bcbfbed072 Resolve __DIR__ / __FILE__ when const/variable is used for include 2022-02-04 19:39:39 +01:00
Matthew Brown
3a298d028e Rename getArrayVarId to getExtendedVarId 2022-02-04 12:49:12 -05:00
AndrolGenhald
5b469ca577 Fix crash when assigning reference to unknown array offset. 2022-02-04 08:32:35 -06:00
AndrolGenhald
588d9e08bc Fix extension capitalization issue, add extensions to version message. 2022-02-03 11:34:50 -06:00
phptest2
582624a932
improving error message for Could not resolve config path
$directory_path is false, so better use $prospective_directory_path in the error message.
2022-02-03 17:58:12 +01:00
Matthew Brown
8098755ce5 Remove comma 2022-02-02 11:29:31 -05:00
Matthew Brown
b382d7db3c Remove some unnecessary code around taint analysis 2022-02-02 11:25:03 -05:00
Matthew Brown
2b81990259 Simplify var naming 2022-02-02 11:25:02 -05:00
Vincent
3c3e692e7e AtomicStaticCallAnalyzer: clear tmp var from context (fix #7556) 2022-02-02 13:51:54 +01:00
orklah
1c2ffc81c2 tweaks 2022-02-01 22:49:20 +01:00
Bruce Weirdan
dadb1f2167
Merge pull request #7539 from vimeo/revert-7363-81_returntypewillchange 2022-02-01 01:03:09 +02:00
Bruce Weirdan
f61193b798
Reinstate MethodSignatureMustProvideReturnType
It's never emitted, but is there for BC.
2022-01-31 23:38:15 +02:00
orklah
68e67aeb10
Merge pull request #7546 from orklah/impure-callable
Handle first class callable on unknown functions
2022-01-31 22:02:35 +01:00
orklah
2e01e9b7cd
Merge pull request #7396 from Patrick-Remy/feat/key-of-value-of-improvements
feat: make key-of/value-of usable with non-const arrays
2022-01-31 21:39:01 +01:00
orklah
a598efb4ab Handle first class callable on unknown functions 2022-01-31 21:36:01 +01:00
adrew
e284b91b82 Remove redundant flag from SimpleTypeInferer 2022-01-31 23:03:34 +03:00
adrew
121a801616 Fix object constant inference 2022-01-31 23:03:34 +03:00
orklah
48e09ab308 fix 2022-01-31 20:55:53 +01:00
Patrick Remy
51d4bf556a
fix: replace template args in key-of/value-of
Extend TTemplateKeyOf from Atomic instead of Scalar, to ensure it is
only compared in AtomicTypeComparator to reduce duplicate code.
2022-01-31 20:53:36 +01:00
orklah
fc281672ea fix wrong detection of purity 2022-01-31 20:52:25 +01:00
Matthew Brown
fcfd4d30f3 Simplify passing in template result for calls 2022-01-31 09:36:40 -05:00
Bruce Weirdan
603714518b
Revert "PHP 8.1: Report missing typehints in overridden native methods" 2022-01-31 14:37:42 +02:00
ada778e8df
Remove unused field 2022-01-31 10:06:32 +01:00
8d0c1c62e8
Ensure all template parameters are specified in classes, interfaces, traits 2022-01-31 10:06:31 +01:00
Bruce Weirdan
997592de64
Merge pull request #7530 from ohader/issue-7528 2022-01-31 10:36:47 +02:00
Bruce Weirdan
b51cb75f76
Merge pull request #7535 from ohader/issue-7534 2022-01-31 10:34:57 +02:00
Oliver Hader
c4c7138329
Update src/Psalm/Plugin/EventHandler/Event/BeforeStatementAnalysisEvent.php
Co-authored-by: Bruce Weirdan <weirdan@gmail.com>
2022-01-31 07:53:44 +01:00
Oliver Hader
ffafccc2ca
Update src/Psalm/Plugin/EventHandler/BeforeAddIssueInterface.php
Co-authored-by: Bruce Weirdan <weirdan@gmail.com>
2022-01-31 07:52:33 +01:00
Oliver Hader
995ecd0964
Update src/Psalm/Plugin/EventHandler/Event/BeforeAddIssueEvent.php
Co-authored-by: Bruce Weirdan <weirdan@gmail.com>
2022-01-31 07:52:24 +01:00
Oliver Hader
6fd31cb5fa
[TASK] Remove deprecated AfterFunctionLikeAnalysisEvent::getClasslikeStorage 2022-01-31 00:34:03 +02:00
Bruce Weirdan
a2977a5ca9
Merge branch '4.x' into upstream-master 2022-01-31 00:16:27 +02:00
Oliver Hader
ff07a8d662
[TASK] Use final event class declarations 2022-01-30 19:29:12 +01:00
Oliver Hader
f5986950a2
[FEATURE] Introduce BeforeStatementAnalysisEvent
As counterpart to existing `AfterStatementAnalysisEvent` - invoked in
`\Psalm\Internal\Analyzer\StatementsAnalyzer` - this changed introcued
a corresponding `BeforeStatementAnalysisEvent`.

Resolves: #7534
2022-01-30 19:27:19 +01:00
orklah
31941d15e2
Merge pull request #7533 from orklah/emptyBack
add back empty keyword
2022-01-30 18:56:22 +01:00
orklah
84d9b5e10c add back empty 2022-01-30 18:43:44 +01:00
Oliver Hader
e3602bbfe1
[FEATURE] Allow to intercept adding issue in IssueBuffer
This change introduces new `BeforeAddIssueEvent` which is invoked
from `IssueBuffer::add`, which allows to collect and intercept code
issue in a generic way.

Resolves: #7528
2022-01-30 17:46:08 +01:00
Oliver Hader
1e072cb904
[TASK] Add AfterFunctionLikeAnalysisEvent::getFunctionlikeStorage
AfterFunctionLikeAnalysisEvent's method `getClasslikeStorage` actually
returned the current `FunctionLikeStorage`. This change streamlines the
naming and adds corresponding `getFunctionlikeStorage` method.

Method `getClasslikeStorage` is deprecated in will be removed
in Psalm v5.0.
2022-01-30 16:55:39 +01:00
orklah
f93bd10c61
Merge pull request #7517 from orklah/fixEmptyArray
Fix empty array
2022-01-30 16:14:24 +01:00
orklah
0592c03cda fix issues resulting from previous commit 2022-01-30 16:05:38 +01:00
orklah
5a3735b90a Change code so it handles what it was designed for 2022-01-30 16:05:22 +01:00
Vincent Langlet
854a3412fe Use function 2022-01-30 15:32:55 +01:00
Vincent Langlet
cd3213201d Fix 2022-01-30 15:30:40 +01:00
Oliver Hader
3fedb5cce6
Apply code styles 2022-01-30 13:06:02 +01:00
Oliver Hader
62a0ece035
!!! Allow plugins to modify Config::$fileExtensions early
ProjectAnalyzer consumed Config::$fileExtensions early in its
constructor - without having processed plugins' modifications,
registering their custom scanners or analyzer implementations.

This change
* adds new specific interface \Psalm\Plugin\FileExtensionsInterface
  to be used by plugin implementations
* extracts file extension handling from \Psalm\PluginRegistrationSocket
  and interface \Psalm\Plugin\RegistrationInterface to a new dedicated
  \Psalm\PluginFileExtensionsSocket and new interface
  \Psalm\Plugin\FileExtensionsInterface
  !!! this is a breaking change in PluginRegistrationSocket !!!
* adds runtime in-memory cache for Config::$plugins
* calls new method Config::processPluginFileExtensions(), providing
  modifications to file extension only early in ProjectAnalyzer
* adjusts documentation
2022-01-30 13:06:00 +01:00
Matthew Brown
faaf7690f6
Remove mic-drop hack from if analysis (#7484)
* Remove mic-drop hack from if analysis

* Remove more special handling

* Remove some unnecessary ElseAnalyzer code

* Add back necessary code

* Fix return type of method never returning null

* Add a comment

* Simplify && handling

* Add comments to make stuff clearer

* Move if-specfic logic to more appropriate setting
2022-01-28 18:30:47 -05:00
orklah
048025b1d6
Merge pull request #7511 from orklah/literal-inequality
improve literal inequality with ranges and rework GreaterThan/LessThan assertions
2022-01-28 22:27:09 +01:00
orklah
66ccf93109 fix CS 2022-01-28 22:21:30 +01:00
orklah
3b73654db7 handle literal inequality with ints 2022-01-28 21:59:30 +01:00
orklah
4609bc4e25
Merge pull request #7471 from klimick/function-dynamic-storage-provider
Function dynamic storage provider
2022-01-28 18:46:26 +01:00
orklah
2966f1c9d4
Merge pull request #7107 from AndrolGenhald/feature/5482-load-extensions-based-on-composer-config
Enable extensions based on composer.json instead of those loaded at runtime (fixes #5482).
2022-01-28 18:45:52 +01:00
AndrolGenhald
b473d812aa Fix side effect when loading config. 2022-01-28 09:26:58 -06:00
adrew
70cea447c8 Fix CS 2022-01-28 15:18:30 +03:00
adrew
1a8367a273 Add some doc about DynamicFunctionStorageProvider 2022-01-28 15:18:30 +03:00
adrew
dd0e00e153 Renaming all occurrences of "function dynamic storage" to "dynamic function storage" 2022-01-28 15:18:30 +03:00