Toon Verwerft
6b789bb5a7
[TypeProvider] Provide argument types during FunctionParamsProviderEvent
2022-01-21 16:32:40 +01:00
Oliver Hader
c34e32f60e
!!! Deprecate \Psalm\Plugin\RegistrationInterface methods
...
Following \Psalm\Plugin\RegistrationInterface methods are deprecated
+ addFileTypeScanner
+ addFileTypeAnalyzer
Following \Psalm\PluginRegistrationSocket methods are deprecated
+ addFileTypeScanner
+ getAdditionalFileTypeScanners
+ addFileTypeAnalyzer
+ getAdditionalFileTypeAnalyzers
+ getAdditionalFileExtensions
+ addFileExtension
Mentioned methods will be removed in Psalm v5.0, corresponding
functionality will be provided by following new interfaces and classes
+ \Psalm\Plugin\FileExtensionsInterface
+ \Psalm\PluginFileExtensionsSocket
Related: #6788
2022-01-21 14:51:36 +01:00
Pete Walker
a3bdf1ba8c
feat: Handle native intersection types
...
Adds native intersection type handling to psalm, removing the previous `UnexpectedValueException`.
Where an intersection is found in the parse tree, the types are resolved using the existing `Type::intersectUnionTypes` function, which I assume is being used when they're encountered in the existing docblock annotations.
I've added a handful of tests to cover this, but they're certainly not exhaustive. Are there any specific edge cases I should target?
This change feels way too simple... so apologies if I've missed something fundamental..!
2022-01-21 12:59:55 +00:00
orklah
35577dfd28
fix typo
2022-01-21 00:29:22 +01:00
orklah
f9b26acf6e
Array key exists assert both ways
2022-01-21 00:26:37 +01:00
orklah
f9e392316f
remove unused imports
2022-01-21 00:17:06 +01:00
orklah
fe9d3f02a8
nitpicks
2022-01-20 23:47:41 +01: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
orklah
6f1a5e8a47
Merge pull request #7417 from klimick/partially-applied-closure-inference
...
Contextual type inference for high order function arg
2022-01-20 21:03:46 +01:00
orklah
2f052a8781
Merge pull request #7437 from orklah/mb_internal_encoding
...
create a return type provider for mb_internal_encoding
2022-01-20 20:51:08 +01:00
orklah
2aeaadee5b
Merge pull request #7442 from M1ke/m1ke/config-threads
...
Allow config to define thread count
2022-01-20 19:39:00 +01:00
Matthew Brown
1ff3161584
Remove array_unique call
2022-01-20 11:36:18 -05:00
Matthew Brown
70479444e3
Remove untested likely-unnecessary code
2022-01-20 11:29:36 -05:00
Matthew Brown
473631fb34
Remove unused & untested code in AlgebraAnalyzer
2022-01-20 11:16:33 -05:00
m1ke
6107148fce
Alter order of precedence and upated docs to match
2022-01-20 15:24:21 +00:00
m1ke
0dc4249d43
Fix phpcs
2022-01-20 10:09:15 +00:00
m1ke
2fdae4ae16
Use config threads if lower than detected threads
2022-01-20 09:50:01 +00:00
m1ke
1b8f337748
Allow psalm to load threads from the config
2022-01-20 09:49:45 +00:00
orklah
ac858e353d
create a return type provider for mb_internal_encoding
2022-01-19 21:45:44 +01:00
orklah
5a6dccd4a9
Merge pull request #7420 from orklah/remove-old-things
...
Remove forbidEcho
2022-01-19 20:32:19 +01:00
orklah
bbfdd57d5c
Merge pull request #7363 from zoonru/81_returntypewillchange
...
PHP 8.1: Report missing typehints in overridden native methods
2022-01-19 20:31:54 +01:00
Vincent
f7252417e4
Fix typing (ref #7430 )
2022-01-19 13:49:41 +01:00
1914be4ca1
Rollback
2022-01-19 12:44:55 +01:00
38945018f5
Run analysis on all PHP versions
2022-01-19 12:39:08 +01:00
d970661182
Add separate issue
2022-01-19 12:20:50 +01:00
e54d666a2e
cs-fix
2022-01-19 12:06:38 +01:00
d8be15a83d
More legacy php changes
2022-01-19 12:06:38 +01:00
c98930d6ce
Fix syntax
2022-01-19 12:06:38 +01:00
cee9eb0ead
PHP 8.1: Report missing typehints in overridden native methods
2022-01-19 12:06:35 +01:00
Vincent
7b25ca75f4
Resolve generics of inherited pseudo methods ( fix #7419 )
2022-01-19 11:45:19 +01:00
adrew
5fb1df8de7
Fix psalm issues in CallableTypeComparator
2022-01-19 00:48:50 +03:00
adrew
7e623ed48e
Upcast invokable to callable during hof arg analysis
2022-01-19 00:37:05 +03:00
adrew
fca72ee151
Fix psalm issues
2022-01-18 22:05:32 +03:00
orklah
477c0113c2
Merge remote-tracking branch 'upstream/4.x' into upstream-master3
2022-01-18 18:37:04 +01:00
orklah
dceaa117cf
remove forbidEcho
2022-01-18 18:25:18 +01:00
orklah
5f749c8a33
remove forbidEcho
2022-01-18 18:14:39 +01:00
adrew
6e1957e40a
Support higher order func arg inference for static and instance calls
2022-01-18 18:45:28 +03:00
adrew
12648f4c9e
Comments for describe how works higher order func arg inference
2022-01-18 13:36:16 +03:00
adrew
ffdf97c44d
Remove unused function
2022-01-18 13:17:50 +03:00
adrew
a0bda8683a
Rename method
2022-01-18 13:13:17 +03:00
adrew
6f9b6f8538
Fix psalm issues
2022-01-18 12:53:39 +03:00
adrew
cce1f9a407
Some refactoring and doc for high order function argument handling
2022-01-18 12:44:36 +03:00
adrew
00ce1107d3
Infer partially applied closure arg by previous function arg
2022-01-18 03:02:21 +03:00
Fabien Villepinte
c9eafa15ad
Improve signature of DOMDocument::loadXML()
2022-01-17 22:52:58 +00:00
Ricardo Boss
26dd4c5b8f
Try to provide literal int types when possible ( fixes #6966 ) ( #7071 )
...
* Fixed vimeo/psalm#6966
* Only accept >= 0 values for mode argument in round()
* Made round() only return float or literal float values and remove unneeded test
* Registered RoundReturnTypeProvider
* Updated cast analyzer to handle single string literal int values as literal ints
* Fixed psalm errors
* Fix invalid property accesses
* Addressed comments
* Added Tests
* Marked RoundReturnTypeProvider as internal
* Fixed CS
2022-01-16 21:33:04 +01:00
andrew
10012c9e09
Fix self parsing for psalm-if-this-is and psalm-self-out
2022-01-16 16:11:40 +03:00
orklah
de824d6724
Merge pull request #7403 from orklah/readonly_phpdoc_promoted
...
support @readonly for promoted properties
2022-01-16 09:38:37 +01:00
orklah
e26e022428
support @readonly for promoted properties
2022-01-16 09:31:58 +01:00
orklah
3c726e76df
Merge pull request #7401 from orklah/getObjectVarsNoValue
...
Psalm can't be sure get_object_vars will return an empty array unless object is known AND final
2022-01-15 23:27:33 +01:00
orklah
bf9845a4aa
Psalm can't be sure get_object_vars will return an empty array unless object is known AND final
2022-01-15 21:36:46 +01:00
orklah
dc1132a915
Better Handling of TPositiveInt combined with TIntRange
2022-01-15 21:29:24 +01:00
orklah
5b82082bbd
Merge remote-tracking branch 'upstream/4.x' into upstream-master2
2022-01-15 20:21:00 +01:00
Matthew Brown
dd8df37572
Remove never-used assertion check
2022-01-15 13:38:00 -05:00
orklah
4e27889736
Merge pull request #7384 from tm1000/bugfix/catch-additional-InvalidArgumentException
...
Catch additional InvalidArgumentException
2022-01-15 11:32:15 +01:00
orklah
9a9243e5fe
Merge pull request #7385 from b2pweb/handle-template-on-pseudo-method
...
Add support of template for docblock methods
2022-01-15 11:26:03 +01:00
orklah
75947c97c6
Merge pull request #7391 from b2pweb/docblock-method-inheritance
...
Handle inherited docblock method
2022-01-15 11:24:06 +01:00
orklah
fb30d831c6
Merge pull request #7398 from orklah/reconciliation
...
use Reconciler::RECONCILIATION_*
2022-01-14 21:44:16 +01:00
orklah
b3e7f12933
Prevent NoValue when there is no phpdoc
2022-01-14 21:39:23 +01:00
orklah
d2faa5b94f
fix errors after merge
2022-01-14 21:13:34 +01:00
orklah
b633619a2c
Merge remote-tracking branch 'upstream/4.x' into upstream-master
2022-01-14 21:01:25 +01:00
orklah
4a85fed181
use Reconciler::RECONCILIATION_*
2022-01-14 19:39:18 +01:00
orklah
9ac77e9512
Merge pull request #6521 from orklah/callable-non-falsy
...
TCallableString is non-falsy (0 can't be a functionlike name)
2022-01-14 19:38:41 +01:00
orklah
d786e9deef
deprecate attribute forbidEcho
2022-01-14 19:31:03 +01:00
orklah
93fe3e81d4
Merge pull request #7304 from orklah/classconst5
...
Refactor Reconciler::handleLiteralEquality
2022-01-14 19:16:23 +01:00
Vincent
a52362465b
Handle inherited docblock method ( fix #7198 )
2022-01-14 10:30:09 +01:00
Matthew Brown
99b7b46e42
Simplify some array access
2022-01-13 10:07:17 -05:00
Vincent
fe7665aaaf
Add support of template for docblock methods ( fix #7320 )
2022-01-13 11:04:37 +01:00
Andrew Nagy
6910461b76
Catch additional InvalidArgumentException
2022-01-12 21:04:35 +00:00
Matthew Brown
9f9573ade5
Remove an unnecessary null arg
2022-01-11 17:10:08 -05:00
Andrew Nagy
0eb00e8ae2
Fix closure to have storage bug in codeAction
2022-01-10 23:36:21 +00:00
orklah
d52c3f0117
Merge pull request #7163 from dvz/explicit-symlink-resolution
...
Add explicit `resolveSymlinks` option for project directories
2022-01-10 21:50:08 +01:00
orklah
af37af7d8c
Merge pull request #7242 from zoonru/seal_all_properties
...
PHP 8.2: seal all properties configuration
2022-01-10 21:36:31 +01:00
orklah
611583c481
Merge pull request #7354 from wouterj/issue-7353/issuehandlers-elements
...
Support multiple <issueHandlers> elements
2022-01-10 21:34:43 +01:00
Patrick Remy
a555543c0c
fix: pass static class name to ReturnTypeAnalyzer
2022-01-10 21:23:52 +01:00
b9e3979c3f
Cs-fix
2022-01-10 10:22:51 +01:00
a35ccfb0cb
Revert misguided changes
2022-01-10 10:19:12 +01:00
b530f23acc
PHP 8.2: seal all properties by default, add configuration key for lower versions
2022-01-10 10:11:28 +01:00
Matthew Brown
72fd3de886
Simplify return type for TypeExpander::expandAtomic
2022-01-09 16:19:04 -05:00
Matthew Brown
7dc1c454fb
Don’t perform containedness check twice
2022-01-09 15:35:47 -05:00
Matthew Brown
a435bc57b9
Rename was_static property to is_static to be more accurate
2022-01-09 14:45:07 -05:00
Matthew Brown
6f513df4ac
Fix empty class
2022-01-09 14:43:07 -05:00
orklah
549c02d661
Merge pull request #7356 from orklah/keep-class-strings-through-array_merge
...
keep class-strings through array_merge
2022-01-09 16:16:55 +01:00
orklah
413da78568
Merge pull request #7326 from orklah/short_closures_returning_never
...
allow short closure to return never
2022-01-09 16:01:26 +01:00
orklah
65efab3a8d
keep class-strings through array_merge
2022-01-09 15:48:58 +01:00
Wouter de Jong
e4e9edda27
Support multiple <issueHandlers> elements
...
This is likely to occur when including multiple Psalm config files.
2022-01-09 14:11:03 +01:00
orklah
c94e25fa7f
refactor the TooFewArguments check to start checking with named arguments
2022-01-09 00:37:16 +01:00
orklah
ce2c6cf438
set the is_list flag for the array inferred for hrtime
2022-01-08 22:48:05 +01:00
orklah
a9bc132842
Merge pull request #7349 from orklah/hrtime2
...
Seal the array inferred for hrtime
2022-01-08 22:40:20 +01:00
Bruce Weirdan
1a1b5a9e6a
Merge branch '4.x' into upstream-master
2022-01-08 23:38:29 +02:00
Bruce Weirdan
3502f0460a
Merge branch '4.18.x' into 4.x
2022-01-08 23:32:50 +02:00
orklah
afc3a76bc0
Seal the array inferred for hrtime
2022-01-08 22:22:21 +01:00
Bruce Weirdan
a4878ac2b5
Revert "Merge pull request #7239 from DeyV/master"
...
This reverts commit 33628cad51
, reversing
changes made to 216cf6c534
.
2022-01-08 22:26:24 +02:00
Matthew Brown
4abbd9cb1b
Simplify object comparison
2022-01-07 18:50:13 -05:00
orklah
abd499c9c9
Merge pull request #7337 from orklah/broken-phar
...
replace class name by full FQN for scoper
2022-01-07 21:58:14 +01:00
orklah
90ada3774c
replace class name by full FQN for scoper
2022-01-07 21:51:11 +01:00
orklah
9d225086e9
replace empty checks on Union with dedicated method
2022-01-07 21:27:45 +01:00
orklah
0d9480ad00
Merge pull request #7335 from orklah/errors_on_int_reconciliation
...
Errors on superior/inferior reconciliation
2022-01-07 20:19:35 +01:00
orklah
af28687708
fix reconciliation when the assertions is not part of the existing range and add tests
2022-01-07 19:39:19 +01:00
orklah
c0864b2652
emit errors on failure to reconcile ints
2022-01-07 18:32:24 +01:00
Stefan Vetsch
7f2f0d99ec
Issue #7243 : Do not throw exception on xinclude with fallbacks
2022-01-07 09:40:19 +01:00