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
121a801616
Fix object constant inference
2022-01-31 23:03:34 +03: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
Bruce Weirdan
603714518b
Revert "PHP 8.1: Report missing typehints in overridden native methods"
2022-01-31 14:37:42 +02:00
6f51b4a432
Fix tests
2022-01-31 10:28:47 +01:00
52872c05a8
Fixes
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
0cbcd0fcf9
Fixed ExceptionCodeTest provider to emit array keys
2022-01-31 00:26:23 +02:00
Bruce Weirdan
a2977a5ca9
Merge branch '4.x' into upstream-master
2022-01-31 00:16:27 +02: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
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
Vincent Langlet
584344fda3
Failing test
2022-01-30 15:17:18 +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
orklah
1220320e0b
fix some iterator stubs ( #6970 )
...
* fix some iterator stubs
* fix iterators
* update stubs
* fix a test
* fixes
* fixes
* fix a test
* fix
2022-01-30 01:18:05 +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
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
dd0e00e153
Renaming all occurrences of "function dynamic storage" to "dynamic function storage"
2022-01-28 15:18:30 +03:00
adrew
e5dae6a901
Prevent first-class-callable handling with FunctionDynamicStorageProvider
2022-01-28 15:18:30 +03:00
adrew
9b383a5a19
Try to create public api for new hook
2022-01-28 15:18:30 +03:00
adrew
aefe971b90
Fix template creation in ArrayMapStorageProvider
2022-01-28 15:18:30 +03:00
adrew
ce1cec5d3a
Using FuncCall instead of list<Arg> in FunctionDynamicStorageProvider for more flexibility
2022-01-28 15:18:30 +03:00
adrew
3210aab278
Test for FunctionDynamicStorageProvider
2022-01-28 15:18:29 +03:00
AndrolGenhald
282518ce5f
Fix failing case in ClassConstAnalyzer and add test.
2022-01-27 21:50:36 -06:00
Patrick Remy
51cab704c4
fix: key-of/value-of handle nested template params
2022-01-28 00:04:21 +01:00
AndrolGenhald
c2b44ff073
Fix copy/paste fail and other psalm/cs issues, reduce duplication of literals.
2022-01-27 16:31:09 -06:00
AndrolGenhald
8132b57881
Add XML config options to enable/disable PHP extensions.
2022-01-27 16:31:05 -06:00
AndrolGenhald
2fe4fc397c
Enable extensions based on composer.json instead of those loaded at runtime ( fixes #5482 ).
2022-01-27 16:30:14 -06:00
Patrick Remy
f87e429e58
fix: infer key-of/value-of type if still templated
...
Not in all cases the TemplateParam gets replaced before type checking,
in these cases, use the defined `as` type.
Refactor to extract key/value type of array union to method.
2022-01-27 22:39:50 +01:00
Patrick Remy
8cd5ccd076
feat: make value-of<T>
capable for template types
2022-01-27 22:28:40 +01:00
Patrick Remy
ed87465f71
tests: correct 'SKIPPED' prefix for skipped test
2022-01-27 22:28:40 +01:00
Patrick Remy
1f28d025c3
feat: allow unions for key-of/value-of
...
Add tests for TValueOfArray.
2022-01-27 22:28:24 +01:00
Patrick Remy
2880d046ce
feat: make key-of/value-of usable with non-const arrays
2022-01-27 22:22:14 +01:00
orklah
9168cef2d4
Merge remote-tracking branch 'upstream/4.x' into upstream-master6
2022-01-26 21:06:25 +01:00
Matthew Brown
ac29afcfe4
Don’t expect config exception in test
2022-01-26 14:30:01 -05:00
AndrolGenhald
740a10141d
Fix crash when a reference is reassigned in a loop.
2022-01-26 12:56:17 -06:00
AndrolGenhald
57b99be519
Improve reference support for assertions, array offsets, and properties.
2022-01-26 12:55:47 -06:00
AndrolGenhald
089700d1be
Add more reference tests.
2022-01-26 12:55:47 -06:00
AndrolGenhald
3c7d176f87
Minor CS fix, phrasing improvement, fix test.
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
AndrolGenhald
b68c6116d8
Use PHP 8.1 when testing AmbiguousConstantInheritance.
2022-01-25 15:49:09 -06:00
AndrolGenhald
0b81f46bb1
Fixes after rebasing.
2022-01-25 15:31:09 -06:00
AndrolGenhald
0edf260d8b
Improve class constant static analysis.
...
Add class const covariance support (fixes #5589 ).
Add check for overriding const from interface in PHP < 8.1 (fixes #7108 ).
Add check for ambiguous const inheritance.
2022-01-25 15:20:17 -06:00
orklah
204d09b271
fix error with 0 being considered positive
2022-01-25 21:54:55 +01:00
orklah
7c8441baec
Merge pull request #7123 from AndrolGenhald/feature/942-type-annotate-class-constants
...
Support type annotations for class consts (fixes #942 ).
2022-01-25 20:54:40 +01:00
ElisDN
9f01c16ae9
Fix array_replace type
2022-01-25 15:22:50 +03:00
Matthew Brown
8ab0eec4dd
Fix key
2022-01-25 01:36:23 -05:00
Matthew Brown
302c72d5b1
Add a couple of currently-working tests
2022-01-25 01:32:35 -05:00
Matthew Brown
c974f23852
Simplify context references
2022-01-24 16:35:42 -05:00
Matthew Brown
61d450a267
Fix combination of templated types
2022-01-24 13:56:32 -05:00
Matthew Brown
944b281cbe
Prevent negation from removing unmatched template vars
2022-01-24 13:20:02 -05:00
orklah
f1c4b62f5c
Merge pull request #7414 from b2pweb/call-docblock-method-using-parent
...
Add support of docblock method using parent keyword
2022-01-24 13:02:57 +01:00
orklah
0619b404e5
Merge pull request #7390 from VincentLanglet/exceptionCode
...
Add Exception->getCode() return type provider
2022-01-24 12:56:57 +01:00
Vincent
280de4bc98
Fix undefined parent method call (ref #7414 )
2022-01-24 09:17:29 +01:00
orklah
63b802bff4
remove TPositiveInt
2022-01-23 23:49:23 +01:00
orklah
7c4f08067b
Merge remote-tracking branch 'upstream/4.x' into upstream-master5
2022-01-23 23:44:04 +01:00
orklah
a7b72b865f
remove TPositiveInt usage for TIntRange
2022-01-23 22:04:18 +01:00
orklah
82d84b0b3a
fix internal properties on interfaces
2022-01-23 13:08:35 +01:00
AndrolGenhald
7d256975e4
Fix cs/psalm errors after rebase.
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
0fb0632e0d
Infer type from known ternary condition.
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
c18a155f77
Support type annotations for class consts ( fixes #942 ).
2022-01-22 17:06:53 -06:00
AndrolGenhald
3510f55e31
Check for indirect circular dependencies with stubbed parents.
2022-01-22 13:56:10 -06:00
AndrolGenhald
c24cf9aa8c
Add test for circular reference with stub class.
2022-01-22 13:54:44 -06:00
AndrolGenhald
2f2c24cb4f
Add reproducer for stub parent class not being loaded.
2022-01-22 13:30:10 -06:00
orklah
0e891f25ad
refactor description of types in Atomic
2022-01-22 19:34:57 +01:00
orklah
841d4f4429
improve support for enum_exists
2022-01-22 18:27:24 +01:00
orklah
070a1cc7a3
fix merge induced errors
2022-01-22 18:05:32 +01:00
orklah
af1888b631
Merge remote-tracking branch 'upstream/4.x' into upstream-master4
2022-01-22 17:48:42 +01:00
orklah
997d5d5f5f
handle two more cases of firstClassCallable
2022-01-22 17:37:35 +01:00
orklah
d1a946c221
Merge pull request #7454 from petewalker/feat/native-intersections
...
feat: Handle native intersection types
2022-01-22 11:18:54 +01:00
Pete Walker
057a99c9f1
fix: Tests / minor bug
2022-01-22 00:00:45 +00:00
Pete Walker
299eca4daa
fix: Add PHP version checks / more tests
2022-01-21 17:31:48 +00: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
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
eb53f7e99c
fix tests
2022-01-20 22:18:03 +01: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
Alberto Piai
9b22d63c5b
fix proc_open stub for php >= 8.0
...
The argument names are defined here:
https://github.com/php/php-src/blob/PHP-8.0.0/ext/standard/basic_functions_arginfo.h#L1773-L1780
2022-01-20 13:57:34 +01:00
Vincent Quatrevieux
c7bfc03a6b
Merge branch '4.x' into call-docblock-method-using-parent
2022-01-20 08:59:50 +01:00
orklah
5c4be6bc21
Merge pull request #7435 from orklah/old-phpunit
...
drop phpunit compatibility aliases
2022-01-19 20:36:44 +01:00
orklah
7d07f42790
fix CS
2022-01-19 20:36:09 +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
orklah
52a7f0694e
drop compatibility aliases
2022-01-19 19:29:16 +01:00
1914be4ca1
Rollback
2022-01-19 12:44:55 +01:00
78a125ab95
Fix
2022-01-19 12:33:16 +01:00
d970661182
Add separate issue
2022-01-19 12:20:50 +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
orklah
cb976f8416
fix merge induced errors
2022-01-18 23:07:35 +01:00
adrew
7e623ed48e
Upcast invokable to callable during hof arg analysis
2022-01-19 00:37:05 +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
379d0d6c49
Add tests
2022-01-18 18:54:47 +03:00
adrew
3886d5b4c6
Add test for high order function arg inference in class context
2022-01-18 13:12:13 +03:00
adrew
fac7115eae
Add simple test for high order function arg inference
2022-01-18 12:48:53 +03:00
Vincent
33f0de073f
Add test case for parent method call without declared pseudo method
2022-01-18 09:34:05 +01: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
Vincent
09fc43a4d8
Add support of docblock method using parent keyword ( fix #7411 )
2022-01-17 19:26:42 +01:00
Matthew Brown
e1d2da792c
More specific test name
2022-01-16 15:34:25 -05: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
Matthew Brown
91902943bd
Make test more of a real-world example
2022-01-16 10:19:51 -05: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
6578396afb
add test
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
3260b1ad74
make class final in test to revalidate what it's testing
2022-01-15 21:53:05 +01:00
orklah
0beb8e7a4e
fix test
2022-01-15 21:39:29 +01:00
orklah
4344c8ec3f
add test
2022-01-15 21:29:24 +01:00
orklah
e8c8161dd6
fix merge induced errors
2022-01-15 20:32:09 +01:00
orklah
5b82082bbd
Merge remote-tracking branch 'upstream/4.x' into upstream-master2
2022-01-15 20:21:00 +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
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
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
0ded59d968
Remove unused use
2022-01-13 19:01:56 -05:00
Vincent Langlet
b376a8d4d7
Wip
2022-01-13 22:23:41 +01:00
Vincent Langlet
b1285bd058
Fix cs
2022-01-13 21:53:34 +01:00
Vincent Langlet
1d6ae16504
Add Exception code return type provider
2022-01-13 21:44:06 +01:00
Matthew Brown
58b567a91d
Fix test
2022-01-13 14:44:24 -05:00
Matthew Brown
b49682a485
Simplify issue suppression in tests
2022-01-13 14:38:17 -05:00
Matthew Brown
f439d6550b
Ensure that all entries in test arrays have explicit keys ( #7386 )
...
* Transformation that updates assertions
* Simplify transformation
* Ensure that all tests have keys
* Fix a few remaining keys
2022-01-13 13:49:37 -05:00
Vincent
fe7665aaaf
Add support of template for docblock methods ( fix #7320 )
2022-01-13 11:04:37 +01:00
AndrolGenhald
ceb5644d5b
Add script to generate issues.md.
2022-01-12 15:22:21 -06:00
AndrolGenhald
240032568c
Add test for issues.md to ensure all documented issues are listed.
2022-01-12 14:29:23 -06:00
AndrolGenhald
7558ef5e85
Fix @covers annotation.
2022-01-11 10:03:00 -06: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
b530f23acc
PHP 8.2: seal all properties by default, add configuration key for lower versions
2022-01-10 10:11:28 +01: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
52ae26f143
fix test
2022-01-09 15:53:43 +01:00
orklah
65efab3a8d
keep class-strings through array_merge
2022-01-09 15:48:58 +01:00
Wouter de Jong
f92841f2df
Only pass existing paths to realpath()
...
`realpath()` returns `false` if the path does not exists. This caused
these tests to not test what they were expected to (due to `false` being
transformed into `""`, which never matches the project paths).
2022-01-09 14:23:48 +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
9877517284
add test
2022-01-09 00:37:16 +01:00
orklah
80f617decd
fix test
2022-01-09 00:37:16 +01:00
orklah
48ebbe8c4b
fix test
2022-01-08 22:52:22 +01:00
Bruce Weirdan
1a1b5a9e6a
Merge branch '4.x' into upstream-master
2022-01-08 23:38:29 +02:00
Matthew Brown
4abbd9cb1b
Simplify object comparison
2022-01-07 18:50:13 -05: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
5ce626fcdf
fix test
2022-01-07 19:39:24 +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
6296a60553
add new test that was failing before
2022-01-07 18:18:47 +01:00
Stefan Vetsch
7f2f0d99ec
Issue #7243 : Do not throw exception on xinclude with fallbacks
2022-01-07 09:40:19 +01:00
Bruce Weirdan
762ef8dab4
Merge branch '4.x' into upstream-master
2022-01-07 08:44:32 +02:00
orklah
cbb0c6398f
allow short closure with never
2022-01-06 21:36:34 +01:00
Fabien Villepinte
b9d8dd9d3f
Fix analysis when __invoke() exists
2022-01-06 21:22:18 +01:00
Bruce Weirdan
46bcb626f5
Merge pull request #7321 from weirdan/dont-crash-on-array_map-first-class-callable
2022-01-06 14:11:35 +02:00
Bruce Weirdan
fe036d4db0
Prevent crashes on array_map(...)
...
Fixes vimeo/psalm#7305
2022-01-06 10:38:58 +02:00
orklah
18ab5a099f
Merge pull request #7309 from orklah/emptyStringKeyedArray
...
fix empty string not quoted in keyed array offset
2022-01-06 09:37:28 +01:00
Bruce Weirdan
3fb3db3516
Merge branch '4.x' into upstream-master
2022-01-06 10:05:53 +02:00
orklah
f3bc55e409
Merge pull request #7312 from orklah/empty-array
...
Support PHPStan notation for empty-arrays
2022-01-06 08:45:40 +01:00
Bruce Weirdan
8726065d21
Applied ClosureToArrowFunctionRector
2022-01-06 00:48:04 +02:00
orklah
9d3a51db6a
remove obsolete test and fix a missing exception
2022-01-05 23:08:34 +01:00
orklah
030195a395
parse array{} into an empty array
2022-01-05 23:08:33 +01:00
orklah
a6a0769402
fix test
2022-01-05 22:39:13 +01:00
orklah
72216f9354
fix test
2022-01-05 22:36:22 +01:00
orklah
e7bc6f273a
don't crash when pushing a template to in_array
2022-01-05 22:33:20 +01:00
orklah
7e2b9d0fab
fix empty string in keyed array offset
2022-01-05 22:26:35 +01:00
Bruce Weirdan
94395f18a4
Applied JsonThrowOnErrorRector
2022-01-05 19:32:43 +02:00
Bruce Weirdan
758e0afd96
Merge branch 'master' into rector-literal-number-separator
2022-01-05 12:32:52 +02:00
Bruce Weirdan
9b488e673f
Merge pull request #7300 from weirdan/dead-code-phpversion
2022-01-05 12:31:12 +02:00
Matthew Brown
7595a3c579
Make treatment of interfaces and classes more symmetrical
2022-01-05 01:10:57 +00:00
Bruce Weirdan
c81c5faa83
Drop dead code based on PHP_VERSION_ID
...
Psalm now requires PHP 7.4, so this test is never skipped.
2022-01-05 01:49:27 +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
Bruce Weirdan
f5dc2ee964
Merge branch '4.x' into upstream-master
2022-01-04 19:42:08 +02:00
Fabien Villepinte
1fa6b612b1
Fix parse_url() return type
2022-01-04 16:09:18 +01:00
Bruce Weirdan
cf962eebc2
Promote conditional tests to always-running
2022-01-04 11:40:55 +02:00
Bruce Weirdan
30013cb81a
Drop orphaned token
...
Refs vimeo/psalm#7285
2022-01-04 10:13:44 +02:00
Bruce Weirdan
ff9b214f65
Merge branch '4.x' into upstream-master
2022-01-04 10:07:18 +02:00
orklah
6f9cbc698b
resolve type alias and class const on UnionTypeComparator
2022-01-04 00:14:08 +01:00
Bruce Weirdan
afa6497051
Dropped THtmlEscapedString
2022-01-03 22:48:59 +02:00
Bruce Weirdan
2e24a16cbb
Dropped legacy plugin API
2022-01-03 18:18:44 +02:00
Bruce Weirdan
ab60d311c2
Merge pull request #7188 from vimeo/muglug-use-invalidscalarargument-less
2022-01-03 06:04:42 +02:00
Bruce Weirdan
966b6ae2b2
Merge pull request #6808 from orklah/exitFunctions3
2022-01-03 06:04:01 +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
83911c7408
Remove unnecessary references to empty in TypeCombiner
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
b658b2738f
remove exitFunctions
2022-01-02 15:20:01 +02:00
orklah
4f7c1d05c1
remove support for allowPhpstormGenerics
2022-01-02 15:06:04 +02:00
Matthew Brown
b419c299e3
Use InvalidScalarArgument only when we can be sure PHP attempts coercion
2022-01-02 14:56:18 +02:00
orklah
8d6b781b3e
use consistent way to compare php version
2022-01-02 13:35:43 +02:00
Bruce Weirdan
36d5a2a83c
Merge pull request #7019 from zoonru/no_ksort_list
2022-01-02 07:37:21 +02:00
Bruce Weirdan
697db76dc1
Merge pull request #7252 from AndrolGenhald/feature/allow-assertions-on-mutable-object-properties
2022-01-02 07:29:02 +02:00
Bruce Weirdan
094a0651d7
Increase composer timeout
...
This should prevent random failures we've been observing lately.
2022-01-02 07:06:16 +02:00
Bruce Weirdan
376d2a389e
Merge pull request #7259 from klimick/infer-this-context-for-psalm-if-this-is
2022-01-02 05:31:24 +02:00
orklah
2a6f12296e
Merge pull request #7260 from orklah/6691
...
forbid calling impure callable in immutable context
2022-01-01 12:08:07 +01:00
orklah
8e5c9f02bb
fix test
2022-01-01 11:21:43 +01:00
orklah
8049438408
forbid calling impure callable in immutable context
2022-01-01 11:13:45 +01:00
adrew
29af83bf61
Add tests for psalm-if-this-is variables and template inference
2022-01-01 13:03:17 +03:00
adrew
878dfa2250
Variable types inference in method context when method marked with psalm-if-this-is
2022-01-01 13:03:17 +03:00
orklah
51ba96c09d
Merge pull request #7253 from orklah/5874
...
allow calling mutation_free function inside a mutation_free context
2021-12-31 00:24:29 +01:00
AndrolGenhald
1b9f57f214
Fix directory separator cross-platform issue.
2021-12-30 16:29:40 -06:00
AndrolGenhald
dd631c0c85
Skip reference tests, allow assertions on magic properties ( fixes #6770 ).
2021-12-30 16:23:59 -06:00
orklah
6c6eac9f2f
fix test
2021-12-30 22:39:30 +01:00
orklah
392402cf6d
allow calling mutation_free function inside a mutation_free context
2021-12-30 22:29:36 +01:00
AndrolGenhald
cb9231b62f
Add failing tests for reference property mutation.
2021-12-30 14:44:03 -06:00
AndrolGenhald
3ac497c811
Allow assertions on mutable object properties.
...
All of the functionality is already there, we just have to not prevent it.
2021-12-30 14:07:55 -06:00
adrew
4a903c71a1
Checking psalm-if-this-is before applying psalm-this-out
2021-12-30 21:48:25 +03:00
546438bec1
Another small fix
2021-12-30 12:05:03 +01:00
ff7abec2bd
Fix tests
2021-12-30 12:01:25 +01:00
Bruce Weirdan
03b7e94748
Merge pull request #7232 from trowski/issue-7196
2021-12-30 10:03:17 +02:00
orklah
f047d5bc53
allow suppressing unevaluatedCode
2021-12-29 00:44:48 +01:00
orklah
3828db52b9
Merge pull request #7229 from orklah/cleanup5
...
remove always true/false conditions
2021-12-27 22:08:06 +01:00
Aaron Piotrowski
e23a915bb1
Fix first-class callables when used with magic method, built-in, or undefined methods
...
Closes #7196 .
2021-12-27 14:29:33 -06:00
orklah
3ae80983cc
fix unused and CS
2021-12-27 20:10:39 +01:00
orklah
9029e1d613
remove always true/false conditions
2021-12-27 19:59:11 +01:00
adrew
87deb19a87
Remove dead code from test
2021-12-27 19:43:06 +03:00
adrew
c0ca383020
Contextual inference for closure param types
2021-12-27 19:35:37 +03:00
sji
a90456ed8b
trim whitespaces in namespaces specified at @psalm-internal
2021-12-27 02:31:11 +02:00
adrew
3d212c642c
Add test for mismatch param type from docblock
2021-12-27 00:45:26 +02:00
adrew
d6d0fc6704
Remove undefined variables
2021-12-27 00:45:25 +02:00
adrew
2e4d75d6bd
Fix closure param type inference in generic context
2021-12-27 00:45:22 +02:00
Bruce Weirdan
fb56d5ce58
Merge pull request #7210 from vstm/improve-cli-utils-argv-handling
2021-12-27 00:35:32 +02:00
orklah
d4fcb7f61c
handle literal equality with integer ranges
2021-12-26 21:09:27 +01:00
orklah
fb97980bf9
fix test
2021-12-26 19:27:13 +01:00
orklah
f7b6c4e1b6
escape more special chars in keyed array names that won't be read by the parser
2021-12-26 19:27:13 +01:00
Stefan Vetsch
3893abff72
Use directory separator to make test more portable
2021-12-24 15:55:24 +01:00
Stefan Vetsch
c3752b4a2b
Fix psalm issues
2021-12-24 10:59:39 +01:00
Stefan Vetsch
5331091f5e
Simplify argv handling, the first element is always the script name
2021-12-24 10:05:52 +01:00
Stefan Vetsch
ecc7400530
Add CliUtilsTest with test cases for old behaviour
2021-12-24 09:54:37 +01:00
orklah
2c9541c1ed
flag the context as "inside_conditional" when analyzing leftover cases to prevent emitting unused error
2021-12-23 22:18:27 +01:00
Tomasz Mlynski
daaa74ce41
Merge branch 'master' into explicit-symlink-resolution
2021-12-22 18:42:55 +01:00
Philip Hofstetter
fdeb1954c2
update docs for enum case deprecation
2021-12-22 06:16:42 +01:00
Philip Hofstetter
e8e968e8c2
recognize Deprecated attribute on enum cases
...
just like with properties, this recognizes both `Psalm\Deprecated` and
`JetBrains\PhpStorm\Deprecated`
2021-12-22 06:16:42 +01:00
Philip Hofstetter
d45cb64827
allow marking enum cases as @deprecated
2021-12-22 06:16:42 +01:00
orklah
cc618bc916
allow successful destructuring to also be null if the source was nullable
2021-12-20 22:48:27 +01:00
orklah
639b1b94a3
fix stub and fix test
2021-12-20 09:57:06 +01:00
Matthew Brown
2e32a18222
Fix callable negation
2021-12-18 19:42:43 +00:00
S.M. Ataur Rahman
e408abf119
Fixed ignoreTypeStats & useStrictTypes flag value detection for directories in config
2021-12-18 19:59:25 +06:00
orklah
ba6a4d8af5
fix test
2021-12-17 00:16:50 +01:00
orklah
9583d6a7e7
invert stub, add test
2021-12-17 00:12:54 +01:00
Matthew Brown
89a1c5acbc
Fix faulty comparison with typed closure
2021-12-16 16:39:08 +00:00
Bruce Weirdan
7e97c5c84e
Merge pull request #7167 from AndrolGenhald/bugfix/7164-conflicting-fake-variable
2021-12-15 20:56:51 +02:00
orklah
16c0496d1c
Merge pull request #7157 from nowaja/master
...
ISSUE-5962 Fixed wrong line number for @method annotations
2021-12-15 18:37:26 +01:00
orklah
2dfe45a96e
Merge pull request #7152 from orklah/7109
...
display class-strings in keyed arrays syntax and allow using them for assertions
2021-12-15 18:36:40 +01:00
AndrolGenhald
03ccb9b548
Add test for nested array_map
return type.
2021-12-15 11:09:10 -06: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
bb687aebba
add test
2021-12-15 00:51:59 +01:00
orklah
41fe5534b6
Merge pull request #7159 from AndrolGenhald/bugfix/number-format-optional-arguments
...
Fix optional arguments in number_format (fixes #7158 ).
2021-12-15 00:47:35 +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
Tomasz Mlynski
1da6893451
Add resolveSymlinks
condition for project directories
2021-12-14 20:25:27 +01:00
AndrolGenhald
10b6b9aef0
Fix optional arguments in number_format ( fixes #7158 ).
2021-12-14 09:10:05 -06:00
Jakub Nowak
14c181f280
ISSUE-5962 Fixed wrong line number for @method annotations
2021-12-14 10:57:02 +01:00
ralila
6ee3d44092
Conversion of misc
2021-12-14 02:52:44 +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
ralila
fed7d1ef3b
Conversion of Psalm\Plugin\Hook\*Interface
2021-12-14 02:08:35 +01:00
S.M. Ataur Rahman
f4512361b2
"No errors found!" message is now printed within a nice green block
2021-12-14 00:50:32 +06:00
orklah
fb07d5819c
Merge pull request #7141 from mathroc/fix/in-array-return-type
...
in_array returns false in strict mode if types are incompatibles
2021-12-13 00:20:43 +01:00
Mathieu Rochette
39fb4222d5
in_array returns false in strict mode if types are incompatibles
...
see #5552
2021-12-13 00:00:53 +01:00
adrew
de0d3a3be3
Allow IssueBuffer::remove to remove recorded issues
2021-12-13 01:42:33 +03:00
adrew
a8d23538b7
Fix closure param type inference with named params
2021-12-12 13:17:15 +03:00
Bruce Weirdan
41ca7f7f7a
Merge pull request #7136 from klimick/forbid-positional-args-after-named
2021-12-12 02:22:51 +02: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
orklah
6632ddf884
Merge pull request #7135 from klimick/fix-closure-param-type-inference
...
Fix type inference of closure params
2021-12-11 23:10:32 +01:00
adrew
63de45f0ad
Remove use of nonexistent class
2021-12-11 23:45:34 +03:00
adrew
6cf2e31c4a
Forbid positional arg after named arg
2021-12-11 23:37:15 +03:00
adrew
603e1c944b
Fix type inference of closure params
2021-12-11 23:00:18 +03:00
adrew
989c3ada2e
Fix type inference of closure params
2021-12-11 22:51:18 +03: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
orklah
0ba5b0b30a
Merge pull request #7130 from AndrolGenhald/bugfix/fix-class-property-suppression
...
Class property issue suppression fixes.
2021-12-11 19:12:49 +01: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
Matthew Brown
b558748db2
Detect unused properties that are written to inside arrays
2021-12-11 11:42:05 -05:00
Aaron Piotrowski
1f3a37ff02
Add support for first-class callables
2021-12-09 10:54:49 -06:00
orklah
761d5f35b4
Merge pull request #7094 from kamil-tekiela/count_chars-fix
...
Fix count_chars stubs
2021-12-09 00:14:11 +01:00
Kamil Tekiela
098238ff7f
Create test for count_chars
2021-12-08 22:57:32 +00:00
orklah
eefdb95765
Merge pull request #7093 from orklah/7090
...
don't stop analyzing array, even if we already have a type and we can't create an object like
2021-12-08 22:37:57 +01:00
orklah
604f47d52a
Merge pull request #7106 from orklah/7098
...
fix reconciliation between positive-int and inferior/superior assertions
2021-12-08 22:29:15 +01:00
Bruce Weirdan
eb2f4dca89
Merge pull request #7103 from AndrolGenhald/feature/3938-decimal-operator-overloads
2021-12-08 23:22:24 +02:00
orklah
be9037f7b1
fix reconciliation between positive-int and inferior/superior assertions
2021-12-08 21:38:12 +01:00
AndrolGenhald
a89e8ec28c
Fix non-empty-literal-string to behave as subtype of non-empty-string ( fixes #7095 ).
2021-12-08 13:38:32 -06:00
AndrolGenhald
b29fc6ad3c
Allow operator overloading for Decimal extension ( fixes #3938 ).
2021-12-08 10:59:37 -06:00
orklah
574c8f74dd
fix test
2021-12-07 19:48:37 +01:00
orklah
c17af4128e
don't stop analyzing array, even if we already have a type and we can't create an object like
2021-12-07 19:38:52 +01:00
marcosh
9c4187fd2f
fix abs tests
2021-12-07 12:00:52 +01:00
Bruce Weirdan
2530b33dbd
Merge pull request #7076 from klimick/fix-generic-assertion
2021-12-07 08:08:48 +02:00
orklah
75312d93b1
Don't crash when checking purity of __callStatic in a trait
2021-12-06 19:00:37 +01:00
Ricardo Boss
2ec77fe29c
Make name property of enum cases return non-empty-strings ( vimeo/psalm#6964 )
2021-12-06 00:33:57 +01:00
adrew
dee3fc4358
try to fix generic assertions for list and array
2021-12-06 02:25:40 +03:00
rarila
39402c233d
Return type hints ( #7065 )
...
Co-authored-by: ralila <>
2021-12-05 19:51:26 +02:00
adrew
bc61547bce
detect yield in array expression
2021-12-05 15:33:18 +03:00
Bruce Weirdan
e9d9481ea6
Merge pull request #7060 from rarila/codingstyle-convert-fqn
2021-12-05 02:46:03 +02:00
ralila
8fb2e0f885
Handle some partials
2021-12-04 21:55:53 +01:00
Bruce Weirdan
14dcbc908a
Don't output console links in CI env ( #7049 )
2021-12-04 19:49:24 +02:00
ralila
f833085a15
Fix fqn usage in php-doc
2021-12-04 03:37:19 +01:00
ralila
d5d277f579
Set further phpcs fqn options
2021-12-03 22:44:41 +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
orklah
a7e9eea0ca
flag usage of get_class outside class without args ( #7043 )
2021-12-02 00:38:45 +02:00
Bruce Weirdan
28c4f86993
Merge pull request #7027 from rarila/issue-6914
2021-11-30 23:34:00 +02:00
orklah
2c6ea7c551
Merge pull request #7022 from orklah/7007
...
remove the remaining dynamic property assignment
2021-11-30 19:41:42 +01:00
ralila
9a7d0809d2
Restrict tests with PREG_UNMATCHED_AS_NULL to PHP >= 7.2
2021-11-30 03:29:41 +01:00
ralila
fef41461ed
Allow skipping tests for PHP <= 7.2
2021-11-30 03:25:39 +01:00
ralila
c29e943244
Add some tests
2021-11-30 03:19:27 +01:00
orklah
466137a4c4
Merge pull request #7025 from orklah/6256
...
flag DeprecatedProperty on static fetch
2021-11-29 23:46:25 +01:00
orklah
9de9c12851
flag DeprecatedProperty on static fetch
2021-11-29 23:32:27 +01:00
orklah
8ca0fc209a
remove the remaining dynamic property assignment
2021-11-29 20:12:59 +01:00
Paweł Słowik
18b6fbc907
Add tests for UnresolvableInclude
2021-11-29 18:37:14 +01:00
ralila
e5c1a35e31
Adjust tests
2021-11-29 14:24:15 +01:00
Bruce Weirdan
28a75652ac
Merge pull request #6997 from zoonru/list_values_paradox
2021-11-29 00:47:12 +02:00
orklah
8bc71fcf85
Merge pull request #7013 from orklah/6951
...
Allow overriding the signature type by a param docblock for promoted properties
2021-11-28 11:50:43 +01:00
orklah
a6e4230d2d
Allow overriding the signature type by a param docblock for promoted properties
2021-11-28 11:10:55 +01: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
Bruce Weirdan
ac903c5634
Include enum cases in const wildcards
...
Refs vimeo/psalm#6471
2021-11-28 05:49:39 +02:00
Bruce Weirdan
7660dc2f3e
Merge pull request #7009 from rarila/fix-symlink-test-error
2021-11-28 01:47:33 +02:00
Bruce Weirdan
66eb665b55
Merge pull request #4160 from Rarst/patch-2
2021-11-28 01:33:16 +02:00
ralila
2e56fcac93
Fix test on Windows
2021-11-28 00:18:13 +01:00
Bruce Weirdan
ec1571d261
Adjust link test to account for colors
2021-11-28 01:14:03 +02:00
Bruce Weirdan
03aea28c73
Merge pull request #6995 from vimeo/enum-constants
2021-11-27 21:49:13 +02:00
Bruce Weirdan
97445b52f3
Correctly process constant references on enum-valued variables
2021-11-27 04:32:32 +02:00
Bruce Weirdan
d19aad7db1
Display target PHP version
...
Historically it was often not quite clear to users what PHP version
Psalm assumes, and why. This PR addresses this issue by printing the
version and where we got it from right before scanning the files.
2021-11-27 02:18:09 +02:00
orklah
72de3b66cc
Merge pull request #7003 from rarila/no-phpdoc-return-void
...
Use return type hints instead of php doc "@return void"
2021-11-26 23:03:28 +01:00
ralila
7279f00e05
fix failing test
2021-11-26 21:55:30 +01:00
ee8c5c9c35
Remove some array_values
2021-11-26 21:47:17 +01:00
04bbd2acba
Fix tests
2021-11-26 21:47:17 +01:00
1129ab1475
Raise RedundantCast when using array_values on a list
2021-11-26 21:47:14 +01:00
orklah
a27e729263
Merge pull request #7002 from orklah/listkeyedarray
...
Disable list flag for TKeyedArray after unset
2021-11-26 21:32:55 +01:00
ralila
fdaed941ad
use return type hints instead of php doc "@return void"
2021-11-26 20:59:41 +01:00
orklah
4f223db455
Disable list flag for TKeyedArray after unset
2021-11-26 20:52:34 +01:00
Bruce Weirdan
f215ed28d0
Drop special handling of constant references on enums
...
Internally enum cases are constants, and they should be resolved as
such.
Fixes vimeo/psalm#6994
2021-11-26 06:00:01 +02:00
orklah
2fbad1bbeb
Merge pull request #6993 from orklah/taint-numerics
...
Taint can't be transmitted through numerics nor bool
2021-11-25 23:20:38 +01:00
orklah
3bc06a8eab
Taint can't transmit through numerics nor bool
2021-11-25 22:40:01 +01:00
orklah
b4d25cbf60
Merge pull request #6984 from orklah/enumcase-in-attribute
...
allow using EnumCase in an Attribute
2021-11-24 19:52:19 +01:00
orklah
049285add2
allow using EnumCase in an Attribute
2021-11-24 19:43:43 +01:00
orklah
fdf3a8dbb8
Merge pull request #6979 from orklah/6975
...
don't accept unresolved literal string as valid callable-strings
2021-11-23 21:41:04 +01:00
Paweł Tomulik
dac8c98613
attempt to fix #6973
2021-11-23 20:26:07 +01:00
orklah
b42c2814a9
Merge pull request #6971 from orklah/empty-keys
...
fix counting array properties when some are Never
2021-11-23 20:11:47 +01:00
orklah
7c6b86cef3
suppress error and add test
2021-11-23 20:04:52 +01:00
Paweł Tomulik
a7b9a241f3
attempt to fix #6937
2021-11-22 23:24:20 +01:00
orklah
eca56c0c1a
Merge pull request #6972 from orklah/unused-throws
...
prevent Psalm from considering throwing methods as unused just because they're immutable
2021-11-22 22:00:55 +01:00
orklah
d8fcd783c8
fix parse
2021-11-22 21:38:25 +01:00
orklah
1c1e352e5f
prevent Psalm from considering throwing methods as unused just because they're immutable
2021-11-22 21:29:57 +01:00
orklah
0d47722195
fix counting array properties when some are Never
2021-11-22 21:13:25 +01:00
orklah
79fa7f5993
Merge pull request #6953 from orklah/callstatic-pure
...
check __callStatic purity instead of the pseudoMethod purity
2021-11-21 23:02:07 +01:00
orklah
41fd460db5
check __callStatic purity instead of the pseudoMethod purity
2021-11-21 13:51:19 +01:00
Sebastian Kehr
511ed99e46
expand type aliases when comparing unions
2021-11-19 14:15:38 +01:00
Maximilian Bösing
62b0a09741
qa: remove useless var
annotation and the psalm suppression
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-11-15 19:06:33 +01:00
Maximilian Bösing
dac82e95dc
qa: re-enable skipped test for class constant assertions
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-11-15 18:49:51 +01:00
Maximilian Bösing
665cea7fbf
bugfix: prevent psalm from yelling about docblock type contradiction
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-11-15 18:36:04 +01:00
Maximilian Bösing
a2bf87b1fc
qa: ensure psalm is able to understand already verified types
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-11-15 18:31:28 +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
Maximilian Bösing
3e1be794c4
refactor: expand test cases and optimize handling of invalid class-constant references
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-11-15 17:56:39 +01:00
Maximilian Bösing
1a543aecb9
qa: add namespace to test asset
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-11-15 17:56:04 +01:00
Maximilian Bösing
49624169a5
bugfix: reconcile class-constant
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-11-15 17:53:26 +01:00
Bruce Weirdan
608e8d11fa
Merge pull request #6922 from weirdan/cases-references
2021-11-15 11:49:47 +02:00
Bruce Weirdan
0a9154b8bb
Allow references to enum cases in class constants
2021-11-15 05:56:09 +02:00
ralila
2e1b7b4c70
Add some tests
2021-11-15 03:09:37 +01:00
Bruce Weirdan
45e1a1c69a
Merge pull request #6850 from gharlan/hyperlink
2021-11-14 23:20:09 +02:00
Bruce Weirdan
db181bfc08
Test links output
2021-11-14 23:07:00 +02:00
Bruce Weirdan
d61e31bbaf
Merge pull request #6912 from weirdan/mbstrotolower-produces-nonlowercase-strings-sometimes
2021-11-14 21:03:24 +02:00
Bruce Weirdan
58f60b4be0
Use correct constant in tests
2021-11-14 05:23:12 +02:00
Bruce Weirdan
f5b71a3a5f
Infer mb_strtolower() result as string when encoding is specified
...
`mb_strtolower()` may return characters we generally consider uppercase
when it's given the encoding argument. This PR makes Psalm to err on the
side of caution and treat the return type as `string` rather than
`lowercase-string` in this case
Refs vimeo/psalm#6908
2021-11-14 03:57:10 +02:00
Aaron Piotrowski
1bb204db76
Fix detecting readonly promoted property visibility
2021-11-13 12:54:15 -06:00
Aaron Piotrowski
d06510833b
Fix detection of readonly on promoted properties
2021-11-13 12:37:08 -06:00
Jonathan Vollebregt
f5d7f6c405
SimpleXMLIterator is not always truthy
...
Fixes #6865
2021-11-12 13:49:31 +01:00
orklah
2d0758ab10
Merge pull request #6899 from pilif/fix-6887
...
don't stop processing for class usage after raising an issue
2021-11-12 09:42:49 +01:00
Philip Hofstetter
ece2bccf76
don't stop processing for class usage after raising an issue
...
this fixes #6887
2021-11-12 09:24:39 +01:00
Bruce Weirdan
85f2083acb
Flag duplicate constants
...
Fixes vimeo/psalm#6882
Addresses p1 from vimeo/psalm#6471
2021-11-11 00:44:17 +02:00
Philip Hofstetter
038df9cebe
detect unevaluated inline-html code after an rearly return
...
this is a followup after #6876
this fixes #6877
2021-11-10 13:11:50 +01:00
Philip Hofstetter
f407ac846a
do not treat __halt_compiler() as an expression being executed
...
this fixes #6875
2021-11-10 12:45:12 +01:00
orklah
a193ec4573
Merge pull request #6874 from orklah/fix-never-combination
...
fix never combination
2021-11-09 23:18:58 +01:00
orklah
de443192c7
Merge pull request #6873 from orklah/ReturnTypeWillChange3
...
load the ReturnTypeWillChange stubs for all versions to allow using it on every PHP version
2021-11-09 23:18:07 +01:00
orklah
830c898fec
Merge pull request #6872 from orklah/InvalidDocblockPromotedProperties
...
allow signature type for promoted property as well as property docblock
2021-11-09 23:17:43 +01:00
orklah
db05dfeb4c
fix never combination
2021-11-09 20:59:49 +01:00
orklah
b7e70f3cd7
load the ReturnTypeWillChange stubs for all versions to allow using it on every PHP version
2021-11-09 19:57:03 +01:00
orklah
d409c063f3
allow signature type for promoted property as well as property docblock (that will be used for param as well)
2021-11-09 19:38:18 +01:00
Thomas Bley
ca2fe166ee
Added option to forbid eval() in codebase #6855
2021-11-07 21:06:22 +01:00
Bruce Weirdan
756be3b80c
Merge pull request #6843 from weirdan/enums-as-attributes
2021-11-07 17:53:19 +02:00
Bruce Weirdan
17ef25acd8
Merge pull request #6845 from sasezaki/cs_SelfMemberReference
2021-11-07 17:41:45 +02:00
orklah
4e6cb75094
Merge pull request #6848 from orklah/taint-comments
...
Taint comments
2021-11-07 15:55:37 +01:00
orklah
39dc7608ef
ignore comments after taint-sink
2021-11-07 10:29:08 +01:00
orklah
3322801903
ignore comments after taint-sink
2021-11-07 10:17:25 +01:00