1
0
mirror of https://github.com/danog/psalm.git synced 2025-01-09 22:49:31 +01:00
Commit Graph

736 Commits

Author SHA1 Message Date
adrew
ec9b2288cc Fix CS 2022-01-28 15:18:29 +03:00
adrew
438be03414 Ability to provide dynamically created function storage via plugin hook 2022-01-28 15:18:29 +03:00
AndrolGenhald
0fe2f6f951 Refactor existing method to reduce redundant code. 2022-01-22 17:06:54 -06:00
AndrolGenhald
1686f28a37 Default to using inferred type unless in late static binding context. 2022-01-22 17:06:54 -06:00
AndrolGenhald
558208e44e Add type checking for class const assignments, fix several other const issues. 2022-01-22 17:06:54 -06:00
AndrolGenhald
c877ce031e Use inferred type instead of annotated type where possible. 2022-01-22 17:06:54 -06:00
AndrolGenhald
df314658a5 Fix trailing comma. 2022-01-22 17:06:54 -06:00
AndrolGenhald
c18a155f77 Support type annotations for class consts (fixes #942). 2022-01-22 17:06:53 -06:00
orklah
e0d3c3f217
Merge pull request #7463 from orklah/Properties
fix code where the offset was wrong
2022-01-22 21:24:59 +01:00
orklah
b9655457da fix code where the offset was wrong 2022-01-22 21:09:37 +01:00
AndrolGenhald
3510f55e31 Check for indirect circular dependencies with stubbed parents. 2022-01-22 13:56:10 -06:00
AndrolGenhald
9a064c04cf Fix invalid trailing comma. 2022-01-22 13:56:10 -06:00
AndrolGenhald
2262cb65d3 Check for circular references with stubbed classes. 2022-01-22 13:56:08 -06:00
AndrolGenhald
db67d2c6e8 Add support for checking parent classes and interfaces from stubs. 2022-01-22 13:54:42 -06:00
orklah
841d4f4429 improve support for enum_exists 2022-01-22 18:27:24 +01:00
orklah
af1888b631 Merge remote-tracking branch 'upstream/4.x' into upstream-master4 2022-01-22 17:48:42 +01:00
orklah
35577dfd28 fix typo 2022-01-21 00:29:22 +01:00
orklah
f9e392316f remove unused imports 2022-01-21 00:17:06 +01:00
Vincent
7b25ca75f4 Resolve generics of inherited pseudo methods (fix #7419) 2022-01-19 11:45:19 +01:00
Bruce Weirdan
8726065d21
Applied ClosureToArrowFunctionRector 2022-01-06 00:48:04 +02:00
Bruce Weirdan
94395f18a4
Applied JsonThrowOnErrorRector 2022-01-05 19:32:43 +02:00
Bruce Weirdan
b924032850
Mark internal classes @internal 2022-01-03 09:33:22 +02:00
Bruce Weirdan
f19e4cedc1
Merge pull request #6705 from orklah/phpstorm-generics-removal 2022-01-03 06:03:36 +02:00
orklah
d912663da4
remove isEmpty 2022-01-03 04:10:41 +02:00
Matthew Brown
2358b96f54
Fix merge errors 2022-01-03 04:10:39 +02:00
orklah
0747b48d06
remove TEmpty 2022-01-03 04:09:59 +02:00
orklah
48de574777
remove support for allowPhpstormGenerics 2022-01-02 15:07:46 +02:00
orklah
4f7c1d05c1
remove support for allowPhpstormGenerics 2022-01-02 15:06:04 +02:00
orklah
8d6b781b3e
use consistent way to compare php version 2022-01-02 13:35:43 +02:00
orklah
2baf3b560a unnecessary statements 2021-12-27 23:00:40 +01:00
orklah
b1a1c65714 CS changes 2021-12-21 18:30:29 +01:00
rarila
97e6511fab Set number of lines before and after namespace. 2021-12-15 04:58:32 +01:00
rarila
7df7c1f070 Format declare(strict_types=1) 2021-12-15 04:42:37 +01:00
orklah
5ddf5df10d
Merge pull request #7155 from rarila/partials-conversion-2
Convertion of partials to full imports
2021-12-15 00:39:20 +01:00
sji
f7e402d75b use igbinary for communication between processes if possible (depending on the configuration) 2021-12-15 03:30:41 +09:00
rarila
1c298c4605 Conversion of Psalm\Type 2021-12-14 02:31:22 +01:00
ralila
e32af3c05a Conversion of Psalm\Type\Atomic 2021-12-14 02:26:28 +01:00
ralila
e170619d10 Conversion of Psalm\Internal\Scanner\UnresolvedConstant 2021-12-14 02:08:34 +01:00
orklah
f79f857ded
Merge pull request #7133 from AndrolGenhald/remove-unused-suppressed
Allow suppressing UnusedPsalmSuppress, remove unused suppressions.
2021-12-11 23:24:31 +01:00
AndrolGenhald
23b781163a Use getSingleAtomic() instead of array_values(getAtomicTypes())[0]. 2021-12-11 13:44:34 -06:00
AndrolGenhald
bfe7f96b56 Allow suppressing UnusedPsalmSuppress, remove unused suppressions. 2021-12-11 13:23:00 -06:00
AndrolGenhald
51d9652b70 Class property issue suppression fixes.
Fix @psalm-suppress and @psalm-allow-private-mutation being ignored if nothing else is in the docblock.
Fix @psalm-suppress not allowing extra text after the issue name.
Fix PossiblyUnusedProperty and UnusedProperty suppression not working at the property level.
Fix MissingPropertyType suppression not working at the property level.
2021-12-11 11:45:06 -06:00
rarila
39402c233d
Return type hints (#7065)
Co-authored-by: ralila <>
2021-12-05 19:51:26 +02:00
ralila
da3a691c36 Import PhpParser\Node\Expr\Closure as ClosureNode 2021-12-05 00:32:38 +01:00
ralila
f833085a15 Fix fqn usage in php-doc 2021-12-04 03:37:19 +01:00
ralila
30a65685a2 Import instead of using fqn classes 2021-12-03 21:40:18 +01:00
ralila
7c32325e03 Import instead of using fqn constants 2021-12-03 21:25:22 +01:00
ralila
2a956498bf Import instead of using fqn functions 2021-12-03 21:07:25 +01:00
ralila
711be643c6 Import instead of using fqn exceptions 2021-12-03 20:29:06 +01:00
ralila
245920e53c Import instead of using fqn 2021-12-03 20:11:20 +01:00
Matthew Brown
175ba83332
Migrate most IssueBuffer::accepts calls to IssueBuffer::maybeAdd (#7020) 2021-11-29 14:54:17 -05:00
Bruce Weirdan
806db287d2
Infer ::from() and ::tryFrom() return types on backed enums
Fixes vimeo/psalm#6429
2021-11-28 09:47:01 +02:00
Maximilian Bösing
6bf02657b6
qa: ensure array_merge has at least one argument
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-11-15 21:10:20 +01:00
Maximilian Bösing
68abcaab5c
feature: extract class constant by wildcard detection into dedicated resolver
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-11-15 18:27:19 +01:00
Bruce Weirdan
0a9154b8bb
Allow references to enum cases in class constants 2021-11-15 05:56:09 +02:00
Alexander Wühr
2d91b90690
Add pcntl_alarm to the list of impure functions 2021-11-03 10:16:10 +01:00
orklah
fbd861c01e ftp_pasv is impure 2021-10-23 15:17:49 +02:00
orklah
b8a2ba251f
Merge pull request #6672 from orklah/phpstorm-generics
prevent phpstorm generics from touching to signature types
2021-10-14 21:25:36 +02:00
orklah
8a770a1003 fix CS 2021-10-14 21:09:30 +02:00
orklah
a1b1080c4e prevent phpstorm generics from touching to signature types 2021-10-14 21:04:53 +02:00
orklah
ae193ca4da replace elvis operator by coalesce operator when applicable 2021-10-13 20:16:06 +02:00
orklah
dbc6f503b1 use of strtolower only once 2021-10-13 20:16:06 +02:00
orklah
0e83afdb86
Merge pull request #6518 from orklah/fix-truthy
improvements of alwaysTruthy/alwaysFalsy
2021-10-04 13:29:49 +02:00
orklah
53c0a4e63a cleanup 2021-10-04 00:03:06 +02:00
orklah
f8628ef68c fix errors 2021-10-02 10:01:05 +02:00
orklah
ab6efe49b2 fix CS 2021-09-26 23:41:26 +02:00
orklah
38dac34846 unnecessary null initialization 2021-09-26 23:34:32 +02:00
orklah
72eab30a3a coalesce operator 2021-09-26 23:34:31 +02:00
orklah
46801c4b98 clearer string operations 2021-09-26 23:34:31 +02:00
orklah
5b684309fd unnecessary ternary 2021-09-26 22:37:16 +02:00
orklah
fce60a018a param defaults 2021-09-26 22:37:16 +02:00
orklah
056f85bbc9 undefined property 2021-09-25 16:25:38 +02:00
orklah
a92fee8ae3 better combining 2021-09-25 11:21:06 +02:00
orklah
97e91e6bf0 code trimming 2021-09-25 02:34:21 +02:00
orklah
9cd8917b88 create callmap for 8.1 and introduce array_is_list 2021-09-04 13:25:23 +02:00
Maximilian Bösing
c9aebe3082
bugfix: resolve recursive aliases in multiple methods
- `ClassLikes#hasFullyQualifiedClassName`
- `ClassLikes#hasFullyQualifiedInterfaceName`
- `ClassLikes#hasFullyQualifiedEnumName`
- `ClassLikes#hasFullyQualifiedTraitName`
- `ClassLikes#classExtends`
- `ClassLikes#classImplements`

Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-08-18 16:37:08 +02:00
Maximilian Bösing
4e0484f283
bugfix: resolve recursive aliases
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-08-18 16:18:58 +02:00
Maximilian Bösing
158f2144b5
qa: use ClassLikes#getUnAliasedName instead of accessing the classlike_aliases
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-08-17 21:43:58 +02:00
Maximilian Bösing
5ef606a5f6
qa: avoid array_keys
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-08-17 21:39:53 +02:00
Maximilian Bösing
f8db5a0461
bugfix: enable ClassLikes to properly detect implementing class aliases
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-08-17 18:40:18 +02:00
Matthew Brown
a4479761a7 Fix #3660 - ensure mixed percentage for file never drops below 0 2021-08-14 10:35:31 -04:00
bjscharp
96056d329f Add simple test to verify outout of getCallMap method
Convert deltafile format to new style proposed by weirdan
Modify CallMapTest to use new format
Modify InternalCallMapHandler to use new format
Move assertions to base testcase
2021-08-08 10:39:54 +02:00
Bruce Weirdan
0317f1dbec
Merge pull request #6130 from weirdan/forbid-dynamic-access-to-static-props 2021-07-19 16:11:29 +03:00
orklah
f1269d2425 makesbindtextdomain impure 2021-07-18 14:24:43 +02:00
Bruce Weirdan
a180dc6099
Flag staticness mismatch
This handles two new cases:
1. Accessing static property with `->` (produces notices and warnings: https://3v4l.org/TiGan)
2. Accessing non-static property with `::` (causes fatal error: https://3v4l.org/IdYSh)

Fixes vimeo/psalm#6117
2021-07-18 02:51:33 +03:00
Claas Augner
b91e00b03f Always keep FunctionLikeStorage->param_lookup in sync 2021-07-06 11:58:58 +02:00
Claas Augner
601a981898 Extract FunctionLikeStorage::setParams()/addParam() 2021-07-06 11:52:42 +02:00
Matt Brown
667dcc2e49 No false-positives for tainting through array keys 2021-06-29 17:05:39 -04:00
Bruce Weirdan
6d4262edbd
Mark return values in as throw argument as used (#5989)
Fixes vimeo/psalm#5975
2021-06-25 09:11:27 -04:00
Abdul Malik Ikhsan
3376f3cdfa
Add ob_get_clean to impure function 2021-06-24 20:34:38 +07:00
Oliver Hader
b07de1fefd
[BUGFIX] Avoid crash during interface checks on non-existing classes (#5984)
`ClassLikes::classImplements(NonExisting::class, WellKnown::class)`
now returns `false` instead of throwing an exception for non-existing
classes.

Fixes: #5983
2021-06-22 18:04:47 -04:00
Bruce Weirdan
260faee29e
Mark set_include_path() as impure 2021-06-22 22:00:05 +03:00
Matt Brown
b678461f5c Improve detection of fluent methods 2021-06-12 17:09:42 -04:00
Matt Brown
23b7ff86b7 Mark interface methods as unused even when inherited 2021-06-12 16:13:29 -04:00
Matt Brown
47bf5ed567 Fix #5918 - add new issue to detect unquoted strings 2021-06-10 17:43:04 -04:00
Matthew Brown
6d09418a23
Detect unused return values (#5917)
* Detect unused return values

* Allow static-returning instance methods (presumed to be fluent)

* Make $is_used the default for Codebase::methodExists
2021-06-10 14:18:15 -04:00
Matt Brown
34c1f9dccf Nest conditional for more accurate flow 2021-06-10 12:52:23 -04:00
Bruce Weirdan
6abce3525a
Enforce use sort (#5900) 2021-06-07 22:55:21 -04:00
Bruce Weirdan
5bfb841072
Prevent crashes when class constant references missing class (#5902)
Fixes vimeo/psalm#5861
2021-06-07 13:20:07 -04:00
Oliver Hader
b259296457
[BUGFIX] Continue processing psalm-flow graph after first taint sink (#5832)
Related: #5830
2021-05-26 16:04:22 -04:00