1
0
mirror of https://github.com/danog/psalm.git synced 2025-01-09 06:28:36 +01:00
Commit Graph

355 Commits

Author SHA1 Message Date
Yannick Gottschalk
5a2f7c0a71 Use getParts() instead of $parts on PhpParser\Node\Name.
also use getFirst(), getLast() and getString()
2023-06-28 03:13:25 +02:00
Maximilian Bösing
ee68f16bb6
feature: introduce callable-object intersection type object&callable
This allows devs to annotate that they expect a callable object.
In addition to this, it can also verify return and argument types.

Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2023-04-03 23:23:28 +02:00
Jack Worman
1c19260cdd Require trailing commas 2022-12-18 13:20:31 -06:00
Jack Worman
69658e8315 SlevomatCodingStandard.Commenting.DocCommentSpacing 2022-12-14 13:34:41 -06:00
Jack Worman
36fa162d6d Use php-cs-fixer to clean up docblocks 2022-12-13 20:46:43 -06:00
cca276768e
List refactoring v5 (#8820)
* Squash

* Remove BC break

* Suppress

* Possibly fix

* Fixes

* Fix test

* Trigger build

* Update psl

* Update psl

* Fixes

* Fixes

* Cleanup

* fix

* Fix build

* Do not consider never when getting the max count

* Add assertion

* Cleanup

* Fix

* Cleanup
2022-12-13 21:40:19 +01:00
54db59682d
Allow parameter types to be contained by a class template type (#8731)
* Allow parameter types to be contained by a class template type in function calls

* Specify PHP version of tests

* Fix tests
2022-11-23 00:14:30 -05:00
d0be59e16e
Immutable unions (#8627)
* Immutable CodeLocation

* Remove excess clones

* Remove external clones

* Remove leftover clones

* Fix final clone issue

* Immutable storages

* Refactoring

* Fixes

* Fixes

* Fix

* Fix

* Fixes

* Simplify

* Fixes

* Fix

* Fixes

* Update

* Fix

* Cache global types

* Fix

* Update

* Update

* Fixes

* Fixes

* Refactor

* Fixes

* Fix

* Fix

* More caching

* Fix

* Fix

* Update

* Update

* Fix

* Fixes

* Update

* Refactor

* Update

* Fixes

* Break one more test

* Fix

* FIx

* Fix

* Fix

* Fix

* Fix

* Improve performance and readability

* Equivalent logic

* Fixes

* Revert

* Revert "Revert"

This reverts commit f9175100c8452c80559234200663fd4c4f4dd889.

* Fix

* Fix reference bug

* Make default TypeVisitor immutable

* Bugfix

* Remove clones

* Partial refactoring

* Refactoring

* Fixes

* Fix

* Fixes

* Fixes

* cs-fix

* Fix final bugs

* Add test

* Misc fixes

* Update

* Fixes

* Experiment with removing different property

* revert "Experiment with removing different property"

This reverts commit ac1156e077fc4ea633530d51096d27b6e88bfdf9.

* Uniform naming

* Uniform naming

* Hack hotfix

* Clean up $_FILES ref #8621

* Undo hack, try fixing properly

* Helper method

* Remove redundant call

* Partially fix bugs

* Cleanup

* Change defaults

* Fix bug

* Fix (?, hope this doesn't break anything else)

* cs-fix

* Review fixes

* Bugfix

* Bugfix

* Improve logic

* Update
2022-11-04 19:04:23 +01:00
7b6e09afc9 Merge branch 'merge_4.x' into immutable_readonly_3 2022-10-17 12:58:41 +02:00
748a74bb2c Merge remote-tracking branch 'origin/4.x' into HEAD 2022-10-16 13:41:27 +02:00
0155ad7472 Immutable readonly 3 2022-10-03 15:13:47 +02:00
f11ed46f26 Immutable assertions 2022-10-03 11:32:15 +02:00
3abd0b961f Immutable Unions 2022-10-03 10:45:36 +02:00
kkmuffme
15046c932b preg_replace with anchor will always only have 1 replacement, add limit for clarity and performance 2022-09-08 18:51:33 +02:00
Bruce Weirdan
238b54abf8
Revert one particular replacement that confuses Psalm 2022-07-29 22:00:21 -04:00
Bruce Weirdan
58e87fa5e0
Applied ArraySpreadInsteadOfArrayMergeRector (take 2) 2022-07-29 18:17:21 -04:00
c409675e3e
Fix intersection of final classes 2022-07-27 18:46:07 +02:00
c2a8d1bb06
cs 2022-07-27 18:00:24 +02:00
09fb879428
Fix #8322, #8319 2022-07-27 17:42:48 +02:00
18106af5e5
Refactor 2022-07-27 14:39:34 +02:00
AndrolGenhald
ba6270c06a Fix type reconciliation breaking Context::$references_in_scope (fixes #8289). 2022-07-21 14:27:21 -05:00
AndrolGenhald
285740a753 Merge branch '4.x' 2022-07-07 15:01:38 -05:00
AndrolGenhald
b671117417 Improve @psalm-internal and prevent usage of IssueBuffer::add(). 2022-06-25 02:09:40 -05:00
Maximilian Bösing
0d96766640
bugfix: single does not mean that only one single atomic type is stored within a union
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-12 19:39:13 +02:00
Maximilian Bösing
3fd7a8b6d7
qa: refactor code to avoid too many nesting levels
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-12 19:27:54 +02:00
Maximilian Bösing
7e033d8051
bugfix: do not extend the type - only narrow down
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-12 19:20:38 +02:00
Maximilian Bösing
ed1bb8a9a6
bugfix: in case the old type is already more accurate than the new type, do not consider the new type as a replacement
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-12 03:35:59 +02:00
Maximilian Bösing
6a73fbd1d2
bugfix: tighten the detection of types which narrow down other types
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-12 02:51:36 +02:00
Maximilian Bösing
e13268f5c0
qa: use $assertion_var_id over $arg_var_id for better type reflection
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-12 01:33:13 +02:00
Maximilian Bösing
6c1ed90dc1
qa: ensure we use multiple isset to verify the existence of $arg_var_id
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-12 01:29:30 +02:00
Maximilian Bösing
c68b6e9d26
bugfix: only allow narrowing down types in case the old type is not single
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-12 01:21:38 +02:00
Maximilian Bösing
4ee1b3feb4
bugfix: only extend existing logic instead of hijacking it
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-12 01:15:46 +02:00
Maximilian Bösing
2d9133b35a
bugfix: overriding types based on assertions have to pass more checks
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-12 00:32:36 +02:00
Maximilian Bösing
7c85e0c0d9
bugfix: only override templated values in case of literals
This will avoid issues with invalid intersection assertions.

Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-11 23:30:52 +02:00
Maximilian Bösing
40971ff57d
bugfix: allow non-single union types in assertions
fixes #5657

Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-09 00:26:34 +02:00
Matt Brown
d064d9fc6c Add test 2022-04-27 01:47:02 -04:00
Aleksandr Zhuravlev
b4fdc3e326 Made most of callbacks static. Reworked some array_map() into foreach() 2022-04-09 21:58:26 +12:00
Vincent Langlet
590ac22ea2 Use another strategy 2022-04-03 09:16:00 +02:00
Matthew Brown
3a298d028e Rename getArrayVarId to getExtendedVarId 2022-02-04 12:49:12 -05:00
Matthew Brown
fcfd4d30f3 Simplify passing in template result for calls 2022-01-31 09:36:40 -05:00
AndrolGenhald
57b99be519 Improve reference support for assertions, array offsets, and properties. 2022-01-26 12:55:47 -06:00
AndrolGenhald
f9450656e1 Add support for references and improve UnusedVariable checks (fixes #7254). 2022-01-26 12:55:47 -06:00
Matthew Brown
0a81f8cd6c
Use objects, not strings, for assertions (#7410)
* Use objects, not strings, for assertions

* Remove unnecessary param

* Remove some unnecessary checks

* Fix bad find/replace

* Add note about assertions no longer stored as strings in UPGRADING.md
2022-01-20 17:33:06 -05:00
Bruce Weirdan
8726065d21
Applied ClosureToArrowFunctionRector 2022-01-06 00:48:04 +02:00
Bruce Weirdan
5758d31161
Apply literal number separator rector
I opted for customary 3-digit groups, except version id, where 2-digit
groups are used to match the version id encoding.
2022-01-05 01:00:05 +02:00
rarila
97e6511fab Set number of lines before and after namespace. 2021-12-15 04:58:32 +01:00
ralila
19b2a64ce8 Conversion of Psalm\Internal\Analyzer\**\*Analyzer 2021-12-14 02:31:26 +01: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
adrew
dee3fc4358 try to fix generic assertions for list and array 2021-12-06 02:25:40 +03:00