Ismail Turan
bec8ddf525
fix (DateTime|DateTimeImmutable)::modify() return types
...
vimeo#9042 caused issues to any called method on an instance
of DateTime|DateTimeImmutable after calling the modify
method.
This fixes vimeo#9171
2023-02-20 08:47:05 +01:00
Bruce Weirdan
38cc316ce9
Update tests/TypeReconciliation/ConditionalTest.php
2023-02-19 06:02:12 -04:00
Evan Shaw
a25fe35584
Negated is_numeric narrows scalar type
2023-02-19 22:38:34 +13:00
Bruce Weirdan
863f15ab15
Merge pull request #9337 from weirdan/validate-test-environment
2023-02-19 04:35:11 -04:00
Bruce Weirdan
73bad8967d
Forbid first-class callables in new
...
It's an invalid construct in PHP, not rejected by PHPParser for some
reaason.
Fixes vimeo/psalm#9335
2023-02-19 04:18:32 -04:00
Bruce Weirdan
236c1a8ae5
Added the test to validate test environment itself
...
We should make sure that the environment the tests are run is as strict
as possible. For example, zend.assertions should be enabled.
2023-02-19 03:52:12 -04:00
Evan Shaw
d4a57c863c
Enable store_node_types for all test cases
2023-02-19 19:52:45 +13:00
Evan Shaw
c8393bd50d
Fix language server first-class callable crashes
2023-02-19 14:18:17 +13:00
Bruce Weirdan
4f22c2e7c6
Propagate phantom classes to closure context
...
Fixes vimeo/psalm#9317
2023-02-18 01:52:10 -04:00
Corey Taylor
e813a54d03
Skip verifying memcache extension callmap
2023-02-17 01:27:37 -06:00
Alies Lapatsin
2ddc54331d
Merge branch 'master' into disableExtensions-hides-warnings
2023-02-16 10:55:38 +01:00
Bruce Weirdan
1c2bc49838
Forbid non-null defaults for callable parameters
...
Fixes vimeo/psalm#3284
2023-02-16 01:36:06 -04:00
Bruce Weirdan
f70f6517a7
Merge pull request #9314 from weirdan/flag-unused-docblock-params
...
Flag docblock parameters that have no counterparts in function signature
2023-02-15 22:31:41 -04:00
Bruce Weirdan
1e71da3799
Merge pull request #9309 from othercorey/fix-memcached-callmap
2023-02-15 22:24:39 -04:00
Bruce Weirdan
0e9f04c55d
Merge pull request #9313 from othercorey/allow-ignored-callmap
2023-02-15 22:23:02 -04:00
Bruce Weirdan
e6aa63731d
Flag docblock parameters that have no counterparts in function signature
...
Fixes vimeo/psalm#3166
2023-02-15 22:04:26 -04:00
Corey Taylor
0598402620
Skip verifying callmaps based on name pattern
2023-02-15 20:00:04 -06:00
Bruce Weirdan
ee823619b8
Flag direct constructor calls
...
Fixes vimeo/psalm#2975
2023-02-15 20:14:00 -04:00
Corey Taylor
ab77cfd490
Fix memcached extension callmap
2023-02-15 17:26:58 -06:00
Alies Lapatsin
4da3252886
Merge branch 'master' into disableExtensions-hides-warnings
2023-02-15 22:01:38 +01:00
Bruce Weirdan
d6b75057a4
Fix test
2023-02-15 03:02:34 -04:00
Bruce Weirdan
8c491e93e8
Flag class constant references where LHS is ordinary string
...
Fixes vimeo/psalm#2185
2023-02-15 02:57:00 -04:00
Bruce Weirdan
3f2ecaec7e
Allow @var
annotations on global vars
...
The actual code was extracted from `StaticAnalyzer`
Fixes vimeo/psalm#1111
2023-02-15 01:20:03 -04:00
Bruce Weirdan
a538439a87
Add option to skip callmap test
...
With this change, callmap tests can be skipped with
`--exclude-group=callmap`:
```console
$ php-noxdebug vendor/bin/paratest --passthru-php="-dmemory_limit=-1" --exclude-group=callmap
```
2023-02-15 00:30:45 -04:00
Bruce Weirdan
840250c534
Update expectations formatting
...
It's easier to read with consistent indentation
2023-02-14 21:59:01 -04:00
Bruce Weirdan
1ab02125b0
Added issue type and psalm.dev link to Emacs report
...
Fixes vimeo/psalm#8331
2023-02-14 21:19:29 -04:00
Alies Lapatsin
766d1487a9
Merge branch 'master' into disableExtensions-hides-warnings
2023-02-14 20:53:54 +01:00
Alies Lapatsin
cfa4450394
Do not display ext deprecation note when disableExtensions used
...
Fixes #8958
2023-02-14 12:34:49 +01:00
Bruce Weirdan
39c992c255
Emit issues for calls to is_a(string, class-string, false)
...
Fixes vimeo/psalm#4092
2023-02-14 02:25:46 -04:00
Bruce Weirdan
cee90fc071
Compare enum cases thoroughly
...
Fixes vimeo/psalm#7814
2023-02-13 22:39:33 -04:00
orklah
9921625691
Merge pull request #9278 from othercorey/fix-func-callmap
...
Fix remaining callmap functions
2023-02-13 07:10:43 +01:00
Corey Taylor
8fb290eb0d
Fix remaining callmap functions
2023-02-12 23:10:09 -06:00
Bruce Weirdan
873d79c5d7
Forbid overriding built-in enum methods
...
Fixes vimeo/psalm#9274
2023-02-13 00:37:59 -04:00
orklah
5d1fe88d3f
Merge pull request #9272 from weirdan/forbid-extending-some-interfaces
...
Forbid implementing some interfaces
2023-02-12 08:38:54 +01:00
Corey Taylor
42e301cf84
Update callmap types for php 8.2
2023-02-12 01:24:43 -06:00
Bruce Weirdan
085e8f6fb2
Forbid implementing some interfaces
...
- `Throwable` can only be implemented when classes extend one of
`Exception` or `Error`
- `UnitEnum` and `BackedEnum` cannot be implemented by user-defined
classes
Refs vimeo/psalm#7722
2023-02-12 02:48:50 -04:00
Corey Taylor
9547a5cba5
Fix several callmap function signatures
2023-02-11 04:53:11 -06:00
Bruce Weirdan
85d4acf3b3
Fix crash when int range boundary is overflown
...
Fixes vimeo/psalm#9114
2023-02-09 22:57:57 -04:00
Bruce Weirdan
954136679a
Fix crashes with invalid @psalm-check-type
syntax
...
Fixes vimeo/psalm#9201
2023-02-09 17:49:49 -04:00
Bruce Weirdan
1ee0f1bcb8
Merge pull request #9256 from othercorey/spoofchecker-callmap
...
fixes https://github.com/vimeo/psalm/issues/9254
2023-02-09 12:53:42 -04:00
Corey Taylor
b467a0a74e
Fix Spoofchecker callmaps
2023-02-09 10:38:39 -06:00
Bruce Weirdan
250d4d593e
Don't crash on unknown exceptions in @throws
docblock
...
Fixes vimeo/psalm#9248
2023-02-09 02:56:01 -04:00
Bruce Weirdan
3c4a829f71
Fixed more CS issues
2023-02-07 11:20:02 -04:00
Corey Taylor
e8ae1ec084
Convert callmaps resource types
2023-02-06 01:12:14 -06:00
Matthew Brown
d450b40da8
Remove some logic that didn't need to be there ( #9209 )
...
* Remove check to see what breaks
* Simplify following logic
* Add tests from @kkmuffme‘s branch
* Reduce scope of fix
* Clean up logic a little
* Add failing test
* Improvements
* Fix for non-Paradoxical Condition result
2023-02-03 21:08:16 -05:00
orklah
54cd529642
Merge pull request #9170 from mmcev106/filter-var-pure
...
Added @psalm-pure to filter_var()
2023-02-02 23:39:06 +01:00
Corey Taylor
f922e576c8
Fix xmlrpc callmap functions that were dropped in PHP 8.0
2023-02-02 12:21:31 -06:00
Bruce Weirdan
5d930a438a
Fix invalid test cases
2023-02-02 12:27:57 -04:00
Bruce Weirdan
fb65c79079
Fix newly discovered CS issues
2023-02-02 12:19:22 -04:00
Mark McEver
b5781c34e8
Fixed a case where the conditional taint, specialize, & flow features were not playing nicely together
2023-02-01 15:41:52 -06:00
Leo Viezens
7966fd574a
Merge branch 'master' into master
2023-01-30 15:38:29 +01:00
Alies Lapatsin
c55d297d0a
Fix coding style issue
2023-01-29 18:52:09 +01:00
Alies Lapatsin
c75e4bdb28
Merge remote-tracking branch 'origin/unify-deprecation-messages' into unify-deprecation-messages
2023-01-29 18:32:55 +01:00
Alies Lapatsin
7526d60f2a
Update assertion to reflect a new output
...
It reverts 588d9e08bc (diff-1ef46093f20172c4dc1cbe5a54e5b60c255082acd3f7c382dae621d8d23df404R172)
2023-01-29 18:32:31 +01:00
orklah
aec0edc618
Merge pull request #9177 from Nicelocal/duplicate_keys
...
Detect duplicate keys in array shapes
2023-01-25 18:37:22 +01:00
Andrew Nagy
b14ed73c0b
Merge tag '5.6.0' into feature/upgrade-lsp-v5
2023-01-25 17:08:24 +00:00
247d30f74c
Detect duplicate keys in array shapes
2023-01-25 10:42:05 +01:00
shvlv
6227943bfb
Allow to scan private constants
2023-01-24 13:31:58 +02:00
shvlv
d6aff3ed20
Parse class constant for PhpStorm Meta override
2023-01-24 12:24:52 +02:00
Bruce Weirdan
70f2fb7d1b
Check $this
in static closures
...
Fixes vimeo/psalm#9148
Fixes vimeo/psalm#2813
2023-01-23 05:16:12 -04:00
Bruce Weirdan
2af7f51394
Suppress warnings when --no-output
is specified
2023-01-22 20:40:21 -04:00
Anner Visser
d86fcf4a85
Narrow ->value of enum case(s) to only the possible values
...
Using $stmt_var_type to determine if we're dealing with a subset of the
enum cases. If so, we only consider those cases for the possible values.
Fixes #8568
Fixes #8812
2023-01-21 12:05:24 +01:00
orklah
9e34de59cb
Merge pull request #9156 from vimeo/indent-docblocks-in-tests
...
Indent docblocks in DocComment test
2023-01-21 00:09:43 +01:00
Bruce Weirdan
bf99b76798
Indent docblocks in DocComment test
...
Since heredocs in PHP 7.3+ automatically strip leading whitespace we can
fix the formatting for this test.
2023-01-20 18:15:07 -04:00
Jack Worman
787b9ae687
Fix dom_import_simplexml()
2023-01-18 18:31:54 -05:00
orklah
dfbd0458f4
Merge pull request #9130 from jack-worman/Report_unmatched_baseline_rules
...
Report unused baseline entries
2023-01-18 18:59:37 +01:00
orklah
466ff68dae
Merge pull request #9122 from othercorey/fix-returns
...
Fix remaining ignored CallMap return types that can be updated
2023-01-18 18:57:05 +01:00
Jack Worman
56f6dfecc8
Report unused baseline entries
2023-01-17 22:02:21 -05:00
Corey Taylor
cfaf763ba7
Fix remaining ignored CallMap return types that can be updated
2023-01-17 17:24:51 -06:00
Jack Worman
f9aa2d5ad3
Support constants in traits
2023-01-17 16:37:44 -05:00
Corey Taylor
66ee278de8
Update conditional test to use filter_input with mixed return
2023-01-15 07:43:26 -06:00
Corey Taylor
bbc522709b
Clean up more callmap return types
2023-01-15 03:57:22 -06:00
Ezequiel
423b1acbd6
Add tests for the remaining int-range
aliases
2023-01-13 11:15:24 -03:00
Emmanuel Guiton
a7c60072dd
Merge branch 'vimeo:master' into master
2023-01-11 13:17:45 +01:00
Emmanuel GUITON
7b212954a9
Additional test and fix when comparing nested templates (vimeo#9094).
2023-01-11 13:17:06 +01:00
Vincent QUATREVIEUX
e5f297ddbb
fix: Handle template type on promoted property #8951
2023-01-10 10:41:48 +01:00
Ryan Bonham
bf62ef8b72
Add assertions to check return types for get_headers
2023-01-09 08:39:19 -05:00
Ryan Bonham
0ba821116e
Fix bad conflict resolution during merge from master.
2023-01-07 19:32:04 -05:00
therealryanbonham
e4e52da218
Merge branch 'master' into 9066_fix_get_headers_signature
2023-01-07 19:27:01 -05:00
Ryan Bonham
ec2f93f33e
Add Test for get_headers associative param in php 7 and php8.
2023-01-07 19:25:04 -05:00
orklah
729c0ba5ed
Merge pull request #9061 from lptn/cleaner_assertions
...
Make it more clear what do we test from Psalm output
2023-01-07 23:16:08 +01:00
orklah
4ec4ed75a6
Merge pull request #9026 from kkmuffme/fix-never-void-combined-null-return-type-false-positives
...
fix implicit return type
2023-01-07 22:32:08 +01:00
Ryan Bonham
e7b5c99255
Remove 'get_headers' from InternalCallMapHandlerTest::$ignoredFunctions
2023-01-06 20:12:02 -05:00
Bruce Weirdan
afb8c8891b
fix I::cases()
where interface I extends BackedEnum
...
Fixes vimeo/psalm#9065
Inheritance in stubs seems to be broken
2023-01-05 21:35:47 -04:00
Alies Lapatsin
5ffb4f2938
Make it more clear what do we test from Psalm output
2023-01-05 18:12:29 +04:00
kkmuffme
d4301455a6
fix test should not change phpdoc to native type hint but keep phpdoc
2023-01-05 09:44:23 +01:00
kkmuffme
25cadb6776
add null to tests to fix invalid return type
2023-01-05 09:44:23 +01:00
kkmuffme
1341c15edc
fix TypeCombiner void => null from docblock missing property
...
* fix InvalidReturnType "Not all code paths of" when function returns null combined types (void, never) https://psalm.dev/r/db4e313898
* fix false positive InvalidReturnType for void|never phpdoc when function returns void and exits
2023-01-05 09:43:19 +01:00
Philip Hofstetter
bab17568dc
fix DateTime::modify() and DateTimeImmutable::modify() return types
...
even though the two methods return types are documented as returning
their respective types, in PHP they are in-fact returning `static`
internally in all versions of PHP currently supported by psalm.
This fixes #9042
2023-01-03 12:11:38 +01:00
orklah
e81823e193
Merge pull request #9035 from othercorey/iterator-returns
...
Fix iterator and exception callmaps
2023-01-01 11:22:39 +01:00
Corey Taylor
e779c5f741
Fix iterator and exception callmaps
2022-12-31 11:34:48 -06:00
kkmuffme
82f71a7ccb
add test
2022-12-31 00:18:08 +01:00
orklah
6353143eaf
Merge pull request #9021 from orklah/nonempty-reconcile
...
Non empty reconciliation
2022-12-29 22:35:12 +01:00
orklah
5bfb87c624
Merge pull request #9022 from Ocramius/fix/#8983-allow-large-union-types-in-array-type-inference
...
Better type inference and type checking for large union types used in array keys/values
2022-12-29 10:48:05 +01:00
orklah
790c30959d
Merge pull request #9016 from Ocramius/feature/#5039-more-refined-types-for-explode-core-function
...
Refined `explode()` types
2022-12-29 10:23:18 +01:00
Marco Pivetta
e6600fea21
Better type inference and type checking for large union types used in array keys/values
...
Fixes #8983
This patch adds a basic test showing that, when reaching a union type with 30 elements
or more, Psalm used to fail with an error, because the large union type got simplified
into a more general type as part of performance optimizations done in `TypeCombiner::combine()`.
This means that a type like `array<1|2|3|(etcetera...)|100, mixed>` was internally
simplified to `array<int, mixed>`, after reaching 30 elements or more, which in turn
led to problems and confusing errors when large union types are in play.
Such union types are relatively common in lookup-table-alike value objects.
By removing the hardcoded call-time limit of `30` types to be combined, we hereby
rely on the default `TypeCombiner::combine()` limit of `500` items, which is more
healthy.
This may come with some performance implications, but it is worth trying out, for
now.
Further parameters passed to `TypeCombiner::combine()` that were already matching
parameter default values were also omitted from the call-sites.
2022-12-29 10:05:23 +01:00
orklah
907729d83a
remove useless imports
2022-12-29 01:00:06 +01:00
orklah
ee98fac581
use Atomic to create the types
2022-12-29 00:51:09 +01:00
orklah
5a002c448b
fix non-empty reconciliation
2022-12-29 00:49:31 +01:00
orklah
9770e113c3
Merge pull request #9020 from orklah/isContainedbug
...
Is containedbug
2022-12-28 23:46:38 +01:00
orklah
a290729087
fix test
2022-12-28 23:33:28 +01:00
orklah
a8fd349e07
fix #7809
2022-12-28 23:29:33 +01:00
orklah
94f9d48bca
Merge pull request #9019 from mmcev106/prevent-erroneous-escapes
...
Prevent DB escaping functions from affecting non-sql taints
2022-12-28 21:32:12 +01:00
Mark McEver
53c3f1ebb3
Prevent other DB escaping functions from escaping non-sql taints
2022-12-28 14:19:01 -06:00
orklah
435acb823c
Merge pull request #9018 from orklah/TClosure
...
create proper TClosure instead of TNamedObject with a Closure value
2022-12-28 20:53:52 +01:00
orklah
fa4891ce58
create proper TClosure instead of TNamedObject with a Closure value
2022-12-28 20:42:59 +01:00
Mark McEver
69f31dcd4a
Prevent mysqli escaping functions from escaping non-sql taints
2022-12-28 13:39:01 -06:00
orklah
58853c00f8
add test
2022-12-28 19:13:03 +01:00
Marco Pivetta
45f743f851
Adjusted assertDifferentTypeOfArray
test to avoid intersecting incompatible string arrays
...
Getting one interesting failure caused by the `lowercase-string` refinement done before:
```
There was 1 error:
1) Psalm\Tests\AssertAnnotationTest::testValidCode with data set "assertDifferentTypeOfArray" ('<?php\n /*...ts[1];')
Psalm\Exception\CodeException: DocblockTypeContradiction - src/somefile.php:21:21 - Cannot resolve types for $parts - docblock-defined type list{0: lowercase-string, 1?: lowercase-string} does not contain list{string, string}
```
Happens on this bit:
```php
'assertDifferentTypeOfArray' => [
'code' => '<?php
/**
* @psalm-assert list{string, string} $value
* @param mixed $value
*/
function isStringTuple($value): void {
if (!is_array($value)
|| !isset($value[0])
|| !isset($value[1])
|| !is_string($value[0])
|| !is_string($value[1])
) {
throw new \Exception("bad");
}
}
$s = "";
$parts = explode(":", $s, 2);
isStringTuple($parts);
echo $parts[0];
echo $parts[1];',
],
```
If I change this to:
```
@psalm-assert list{lowercase-string, lowercase-string} $value
```
Then everything works: I'm wondering if this error has to do with array intersections, and whether suppressing it suffices.
For now, changing the input string, so it is not a `lowercase-string`, is sufficient.
2022-12-28 17:57:33 +01:00
Marco Pivetta
c0c0116809
Using list{0: string, 1?: string}
syntax for more precise array key types
...
Thanks to @orklah's feedback, the `explode()` return type is now much more precise too.
Ref: https://github.com/vimeo/psalm/pull/9016#discussion_r1058458616
2022-12-28 17:48:33 +01:00
Marco Pivetta
6341d7fef0
Adjusted existing tests to the new signature of explode()
...
Note how the signature became `array{0: string, 1?: string, 2?: string, array<int, string>}`,
which may be a side-effect of unions between a defined hashmap structure with array
keys, and `list<string>`.
2022-12-28 17:39:06 +01:00
orklah
dbcfe62c52
Merge pull request #8987 from jack-worman/Always_check_unused_methods_and_properties
...
Add @psalm-api annotation
2022-12-28 15:20:48 +01:00
orklah
d338b00cb7
Merge pull request #8999 from VincentLanglet/union
...
Preserve from_docblock in TypeCombiner
2022-12-28 10:08:12 +01:00
orklah
41ae518800
Merge pull request #9001 from fluffycondor/http_response_header-non-empty-list
...
Make `$http_response_header` a non-empty-list
2022-12-28 00:27:30 +01:00
Bruce Weirdan
52da29e389
Do not require return type on destructors in interfaces
...
Fixes vimeo/psalm#9008
2022-12-26 15:45:44 -04:00
Vincent Langlet
b1f1ca6d7e
Try
2022-12-25 19:11:54 +01:00
Vincent Langlet
a8ef02db5a
Real fix
2022-12-25 17:35:47 +01:00
fluffycondor
bfc00056e3
Add test
2022-12-25 11:50:09 +06:00
fluffycondor
032f01114e
Fix test
2022-12-25 11:41:34 +06:00
Jack Worman
1bb9eb4cfc
forbidden function bug and better get_defined_functions() signature
2022-12-24 12:34:40 -06:00
fluffycondor
69da58d578
Make http_response_header a non-empty-list of non-falsy-string
2022-12-25 00:02:58 +06:00
Vincent Langlet
ebd5727dec
Update type
2022-12-24 13:38:02 +01:00
Vincent Langlet
723001d814
Failing test
2022-12-24 13:17:08 +01:00
Jack Worman
703a1e1698
@psalm-api
2022-12-23 16:13:46 -06:00
orklah
597957989c
Merge pull request #8990 from othercorey/verify-param-nullable
...
Verify nullable callmap parameters
2022-12-23 18:30:27 +01:00
Corey Taylor
d6eca8c056
Verify nullable callmap parameters
2022-12-23 06:04:35 -06:00
Emmanuel GUITON
164e279d08
Fixed object comparison that aims to improve nested template analysis (vimeo#8112).
2022-12-22 15:16:17 +01:00
Emmanuel Guiton
b138107bf3
Merge branch 'vimeo:master' into master
2022-12-22 15:15:46 +01:00
Jack Worman
8e5904d624
Fix get_object_vars on enums
2022-12-21 22:51:53 -06:00
orklah
898aa90436
Merge pull request #8967 from jack-worman/Remove_occurrences
...
Remove occurrences from error baseline
2022-12-21 20:31:56 +01:00
e2a5ef1eb5
Revert
2022-12-21 14:05:05 +01:00
Jack Worman
896799dff4
Remove occurrences
2022-12-21 06:45:45 -06:00
Emmanuel GUITON
3364bd97e1
Additional code style fixes (vimeo#8112).
2022-12-21 11:51:42 +01:00
Emmanuel Guiton
94adf78c16
Merge branch 'vimeo:master' into master
2022-12-21 10:56:47 +01:00
Andrew Nagy
24017059ee
fix phpcs issues
2022-12-20 23:31:56 +00:00
Jack Worman
b2ccf2487e
Add Codebase to remaining events
2022-12-20 17:18:50 -06:00
Andrew Nagy
5f9487e9a9
async test case fixes
2022-12-20 21:26:25 +00:00
Andrew Nagy
30f8331da6
additional fixes
2022-12-20 21:25:04 +00:00
Andrew Nagy
f1b0c4fa6d
additional fixes
2022-12-20 21:16:29 +00:00
Andrew Nagy
b9791d24dc
fix some tests
2022-12-20 21:09:34 +00:00
Andrew Nagy
82d8974fe3
merge to v5
2022-12-20 20:52:25 +00:00
orklah
91081f77fd
Merge pull request #8781 from weirdan/8758-optional-offsets-in-phpstorm-meta
...
Allow omitting argument offsets for map-type overrides in phpstorm.meta
2022-12-20 19:38:51 +01:00
3549162acc
Update
2022-12-20 13:44:05 +01:00
02cd829b7d
Fix bug
2022-12-20 13:28:47 +01:00
825f46f9dc
Fix test
2022-12-19 22:23:31 +01:00
dc5a4576a5
Fix
2022-12-19 21:25:06 +01:00
194f71052c
Add failing test
2022-12-19 21:11:10 +01:00
4fb5a615f1
Fix tests
2022-12-19 19:24:03 +01:00
ab2692fdd3
Update
2022-12-19 18:31:43 +01:00
ec11254316
Update
2022-12-19 14:27:41 +01:00
e923229204
Fix array_merge
2022-12-19 14:01:00 +01:00
326ba91812
Update
2022-12-19 13:49:42 +01:00
8088f046cd
Fix
2022-12-19 13:10:17 +01:00
9d7dd20293
Fix some tests
2022-12-19 13:04:24 +01:00
b91ad2cb1d
Begin fixing #8942
2022-12-19 12:55:32 +01:00
bde77f7a95
Fixes
2022-12-19 12:29:27 +01:00
b691219da5
cs-fix
2022-12-19 12:09:20 +01:00
4e7ff473a5
Fix #8940
2022-12-19 12:06:57 +01:00
Theodore Brown
0f4db694df
Allow conditions inside loops to preserve or narrow int range
...
Fixes #7555 , fixes #8020 , fixes #8865
2022-12-18 17:35:14 -06:00
orklah
156c1089a9
Merge pull request #8927 from jack-worman/Trailing_commas
...
Trailing commas
2022-12-19 00:04:47 +01:00
Jack Worman
e7d4d697ac
Reflection class stub updates
2022-12-18 14:35:41 -06:00
Jack Worman
1c19260cdd
Require trailing commas
2022-12-18 13:20:31 -06:00
orklah
8223332185
Merge pull request #8926 from danog/fix_8925
...
Skip intersection of template types during inheritance check
2022-12-18 18:53:07 +01:00
orklah
da001c46cd
Merge pull request #8929 from danog/fix_8923
...
Fix #8923
2022-12-18 18:52:37 +01:00
2f5d0a4a9f
Fix #8923
2022-12-18 18:19:22 +01:00
70d1a5a3c5
Add test
2022-12-18 18:14:43 +01:00
c454a181cc
Fixes
2022-12-18 15:00:15 +01:00
098d5020d0
array_merge_recursive
2022-12-18 14:52:44 +01:00
1dd062a810
Fix #2481
2022-12-18 14:50:51 +01:00
b83226a0db
More array_merge improvements
2022-12-18 14:37:19 +01:00
fluffycondor
dd76a1e481
Fix tests
2022-12-18 16:57:36 +06:00
fluffycondor
6f230edc8b
Add one more test
2022-12-18 16:53:19 +06:00
fluffycondor
a8b249b786
Remove no longer necessary @vars
2022-12-18 16:53:19 +06:00
fluffycondor
987981b12a
Make sprintf return non-empty-string when arguments non-empty-strings too
2022-12-18 16:53:19 +06:00
orklah
62ced63375
Merge pull request #8910 from jack-worman/Last_property_typehints
...
Last property typehints
2022-12-17 15:53:36 +01:00
Bruce Weirdan
425d9fa8bf
Recognize casts from object-with-properties to array
...
Previously `(array)(object)['a' => 1, 'b' => 'foo']` would result in
`array<array-key, mixed>`. Now it would be inferred as
`array{a:1,b:foo,...<array-key,mixed>}`
2022-12-16 20:12:02 -04:00
Jack Worman
a52f35e5e1
Even more property typehints
2022-12-16 13:24:21 -06:00
992f26a8e7
Fix array_merge edge case
2022-12-16 18:10:46 +01:00
Leo Viezens
0ef7ec100a
#7387 Add asserting non-empty-string by strlen
2022-12-16 17:04:01 +01:00
orklah
5132de22e0
Merge pull request #8900 from othercorey/fix-unreflectable
...
Fix remaining invalid unreflectable methods
2022-12-15 21:19:10 +01:00
orklah
e69f88af5a
Merge pull request #8897 from jack-worman/Add_some_more_property_typehints
...
Add property typehints in Internal directory
2022-12-15 21:11:43 +01:00
Corey Taylor
067d0649ca
Fix remaining invalid unreflectable methods
2022-12-15 04:09:02 -06:00
Jack Worman
2b5407d2fb
Added SlevomatCodingStandard.TypeHints.ParameterTypeHint sniff and removed php-cs-fixer
2022-12-14 20:26:17 -06:00
Jack Worman
69658e8315
SlevomatCodingStandard.Commenting.DocCommentSpacing
2022-12-14 13:34:41 -06:00
Jack Worman
643542346b
Add codesniffer rules and expand php-cs-fixer to bin and test
2022-12-14 13:29:09 -06:00
Corey Taylor
902ea9d7e2
Fix DOM and Reflection unreflectable methods
2022-12-14 10:18:15 -06:00
027354cabc
Improve parsing of list shapes ( #8841 )
...
* Improve parsing of list shapes
* Improve logic
* One more test
* Fix tests
2022-12-13 22:30:40 +01:00
6347a21546
Literal inferring for array_column, array_combine, array_fill_keys, array_fill ( #8850 )
...
* Squash
* Remove BC break
* Suppress
* Possibly fix
* Fixes
* Fix test
* Implement literal array_column
* Improve array_column inference
* Improve logic
* Add array_combine return type provider
* Cleanup
* Fix #8868 (add array_fill_keys/array_fill return type)
* cs-fix
* Fix
2022-12-13 22:29:35 +01: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
orklah
00706de18e
Merge pull request #8826 from othercorey/callmap-methods
...
Add validation for Class::Method names in CallMap
2022-12-13 18:47:23 +01:00
Corey Taylor
e57079f581
Add validation for Class::Method names in CallMap
2022-12-13 03:34:47 -06:00
orklah
72e7386eb5
Merge pull request #8722 from Ocramius/feature/#8720-improve-types-and-purity-for-reflection-symbols
...
Declaring more precise types and purity boundaries on `ext-reflection` symbols in `.phpstub` files
2022-12-12 21:27:47 +01:00
Bruce Weirdan
9db0eb3e03
InvalidEnumMethod requires PHP8.1+
2022-12-12 03:12:55 -04:00
Bruce Weirdan
19a1005bc3
Forbid most magic methods on enums
...
Fixes vimeo/psalm#8889
Additionally this fixes case-sensitivity of
MethodSignatureMustOmitReturnType issue
Fixes vimeo/psalm#8888
2022-12-12 03:03:20 -04:00
Bruce Weirdan
a4ff9eb204
Allow true
in native types
...
Fixes vimeo/psalm#8872
For `null` and `false`, we already allowed them even as standalone
types, even though PHP before 8.2 only allowed them as part of a union.
2022-12-09 20:17:09 -04:00
orklah
e4b64af599
Merge pull request #8861 from VincentLanglet/count
...
Precise count range
2022-12-09 00:41:00 +01:00
Vincent Langlet
f6051bc417
Precise count range
2022-12-08 16:44:10 +01:00
Marco Pivetta
30a49633a5
Corrected AttributeTest
expectation: ReflectionAttribute
s always come in a list
2022-12-07 15:44:38 +01:00
Mark McEver
9764803c55
Allowed taints to pass through urlencode()
2022-12-05 17:25:36 -06:00
orklah
cc9c67d7ee
Merge pull request #8834 from danog/fix_class_string_unions
...
Fix parsing of class string of unions
2022-12-04 20:44:41 +01:00
orklah
f3e1a2c0e4
impossible constructor
2022-12-04 20:33:05 +01:00
4c277052e3
Fix parsing of class string of unions
2022-12-04 20:28:53 +01:00
orklah
2490230f1f
fix missing break handling in loop
2022-12-04 13:57:59 +01:00
Corey Taylor
d9b651a126
Fix return types for date functions in callmap
2022-12-03 17:55:29 -06:00
Bruce Weirdan
a157743140
Prevent crashes on conditional traits
...
Fixes vimeo/psalm#7863
2022-12-03 01:21:10 -04:00
Bruce Weirdan
4d8af74d92
Don't crash when accessing immutable static property
...
Fixes vimeo/psalm#8313
2022-12-03 00:51:22 -04:00
Bruce Weirdan
7364988934
Fix crash when using phantom methods as first-class callable
...
Fixes vimeo/psalm#8377
2022-12-02 23:28:22 -04:00
Barney Laurance
a29f65ecfe
Fix too lax function visibility in test
2022-12-02 00:24:44 +00:00
Barney Laurance
6693421379
Code style fix
2022-12-02 00:24:05 +00:00
Barney Laurance
54239838fe
Fix error in ByIssueLvelAndTypeReport heading
2022-12-02 00:17:27 +00:00
Barney Laurance
699ee344d4
Indent heredoc in test
2022-12-02 00:14:43 +00:00
Barney Laurance
3f5616672a
Add test for ByIsueLevelAndTypeReport
2022-12-01 23:27:53 +00:00
orklah
433e272149
Merge pull request #8809 from danog/fix_8806
...
Fix #8806
2022-12-01 21:00:40 +01:00
7f15d47c19
Add tests
2022-12-01 20:14:37 +01:00
orklah
b4aa951caa
Merge pull request #8798 from orklah/min_count
...
fix sealed combination
2022-12-01 18:35:02 +01:00
kkmuffme
694b7d8975
check "never" return type more strictly
...
* require explicit "never" return type when function always exits, except if it only throws
* error if function does not exit, but return type explicitly contains "never"
* Fix: https://github.com/vimeo/psalm/issues/8175
* Fix: https://github.com/vimeo/psalm/issues/8178
2022-12-01 14:51:58 +01:00
orklah
2da4bf98d6
add test
2022-11-30 23:45:55 +01:00
Andrew Nagy
e16a4f3f85
more testing fixes
2022-11-30 18:28:13 +00:00
Andrew Nagy
b0705b4e29
fix tests
2022-11-30 18:14:06 +00:00
Andrew Nagy
da66665de9
Merge branch '4.x' into feature/upgrade-lsp
2022-11-30 17:59:23 +00:00
Emmanuel GUITON
0d9d0ed60d
Fixes vimeo#8112
2022-11-30 17:17:38 +01:00
Bruce Weirdan
de96494fee
Allow omitting argument offsets for map-type overrides in phpstorm.meta
...
Fixes vimeo/psalm#8758
2022-11-27 16:36:34 -04:00
Bruce Weirdan
8fa35c2228
Variables should outlive namespaces ( #8779 )
...
Variables in PHP are not namespaced. In other words, namespaces share
the context with the file they are located in.
See https://3v4l.org/2qvrC
Fixes vimeo/psalm#8778
2022-11-27 10:45:40 -05:00
Bruce Weirdan
05b8e0eea6
Replace all references to static variables when moving class ( #8780 )
...
Previously `psalter` would only replace the first occurence of the
property access. Now it replaces all properties (by keeping the old name
unknown in the context).
2022-11-27 10:44:53 -05:00
Matthew Brown
1819a2d880
Add diagnostic message when shape fields are missing ( #8762 )
...
* Add a simple diagnostic for missing array shape fields
* Fix dumb mistakes
* Allow nested shape extra keys to prompt warning too
2022-11-26 11:26:36 -05:00
Matthew Brown
a0e4468a9a
Simplify assertions generated by an array_key_exists check ( #8763 )
2022-11-25 12:16:37 -05:00
Bruce Weirdan
0b1af26011
Merge pull request #8755 from weirdan/switch-from-prophecy-to-mockery
2022-11-25 03:42:58 -04:00
Bruce Weirdan
6c77daf1f4
Upgrade mockery plugin
...
and other assorted fixes for PHP 8.2
2022-11-25 03:33:10 -04:00
Bruce Weirdan
1183476089
CS fix
2022-11-24 21:23:30 -04:00
Bruce Weirdan
42b71f5eae
Switch from phpspec/prophecy
to mockery/mockery
...
It provides similar functionality, but is a bit more alive and does not
prevent installation with PHP 8.2
2022-11-24 21:20:21 -04:00
orklah
583dabee99
Merge pull request #8753 from orklah/8745
...
Fix #8745
2022-11-24 20:21:28 +01:00
orklah
b53a9c322c
Fix test incompatible with PHP 7.4
2022-11-24 20:06:02 +01:00
orklah
ea4b099c66
Fix #8745
2022-11-24 20:02:04 +01:00
orklah
bca202bf5e
Merge pull request #8749 from Nicelocal/fix_8748
...
Fix #8748
2022-11-24 19:44:44 +01:00
5ac60ddea0
Add tests
2022-11-24 19:31:53 +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
Bruce Weirdan
6554aa05a7
Emit MixedMethodCall
when calling new
on object
2022-11-19 17:29:35 -04:00
Bruce Weirdan
d7561919b2
Allow new
on objects
...
Fixes vimeo/psalm#8355
2022-11-19 16:53:07 -04:00
orklah
48c0df6a8c
Merge pull request #8708 from annervisser/allow-using-imported-type-in-other-type
...
Allow using imported types in other types within the same file
2022-11-18 22:06:17 +01:00
orklah
ebc7599697
Merge pull request #8713 from weirdan/fix-8712
...
Reject `@psalm-consistent-constructor` in function docblocks
2022-11-18 22:05:22 +01:00
Fran Moreno
c3bd060f06
Fix DateTimeZone::listAbbreviations return type
...
Also fixes DateTimeZone::getOffset return type
2022-11-18 08:50:00 +01:00
Bruce Weirdan
8e1f129701
Reject @psalm-consistent-constructor
in function docblocks
...
Fixes vimeo/psalm#8712
2022-11-16 19:14:13 -04:00
Anner Visser
d10b1f91bb
Allow using imported types in other types within the same file
...
In the test case (from issue #7116 ) both the type definition and the
import of the typed lived in the same file. This caused `OpeningTypes`
to be an `InlineTypeAlias` instead of a `LinkableTypeAlias`, in turn
causing an 'Invalid type alias' exception[^1].
By replacing the array union (+) with an array_merge, the import of the
type overrides the initial type declaration within the `Main` class.
This means type imports within one file act more like they would when in
separate files.
Fixes #7116
[^1]: [src/Psalm/Type/Atomic.php:407](1986c8b4a8/src/Psalm/Type/Atomic.php (L407)
)
2022-11-15 14:46:31 +01:00
Bruce Weirdan
dd253b755b
Conserve some vertical space
2022-11-14 14:54:55 -04:00
Anner Visser
5bafc9512c
Add support for type aliases in @psalm-assert(-*) annotations
...
Fixes #8263
2022-11-14 16:03:35 +01:00
Matthew Brown
8d36bdc3ed
Make array shapes strict by default ( #8701 )
...
* Make array shapes strict by default
* Fix PSL tests
2022-11-11 20:14:21 -05:00
Bruce Weirdan
c613e47c55
Merge pull request #8693 from weirdan/fix-8267
...
Fixes https://github.com/vimeo/psalm/issues/8267
2022-11-10 21:13:12 -04:00
Bruce Weirdan
f49ff60172
Merge pull request #8688 from weirdan/fix-stringable-object
...
Fixes https://github.com/vimeo/psalm/issues/8575
2022-11-10 20:27:49 -04:00
Bruce Weirdan
55933a5309
Merge pull request #8692 from weirdan/fix-8602
...
Fixes https://github.com/vimeo/psalm/issues/8602
2022-11-10 20:27:07 -04:00
Bruce Weirdan
80750fd579
Implement subtype checks for stringable-object
2022-11-10 19:55:36 -04:00
Bruce Weirdan
d122cef1ca
Mark inferred mutation-free constructor as such
...
Previously Psalm treated those constructors as explicitly mutation-free,
and thus required descendant constructors to be explicitly marked too.
Fixes vimeo/psalm#8602
2022-11-10 19:55:25 -04:00
Bruce Weirdan
6effd1bd2d
Flag invalid enum case value types
...
Fixes vimeo/psalm#8267
2022-11-10 19:55:18 -04:00
Bruce Weirdan
290b65f6dd
Allow enum cases to reference constants
...
Fixes vimeo/psalm#8242
2022-11-10 19:54:45 -04:00
Matthew Brown
d63da1f66e
Prevent array{a: Foo} going cleanly into array<Foo> ( #8691 )
...
* Prevent array{a: Foo} going cleanly into array<Foo>
* Add test for new behaviour
* Fix code style issues
* Allow unions to be cloned again
* Simplify params properties
2022-11-10 09:18:27 -05:00
Bruce Weirdan
d81543f83e
Emit DeprecatedInterface
when an interface is referenced in a generic
...
Fixes vimeo/psalm#8617
2022-11-08 20:34:08 -04:00
65d6a469b6
Fix tests
2022-11-08 10:45:21 +01:00
68a5511057
Merge remote-tracking branch 'origin/4.x' into HEAD
2022-11-08 10:25:04 +01:00
Corey Taylor
b87ebd697f
Fix assert testing callmap return types
2022-11-06 00:59:55 -05:00
1986c8b4a8
Add support for strict arrays, fix type alias intersection, fix array_is_list assertion on non-lists ( #8395 )
...
* 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
* Add support for list{} and callable-list{} types, properly implement array_is_list assertions (fixes #8389 )
* Default to sealed arrays
* Fix array_merge bug
* Fixes
* Fix
* Sealed type checks
* Properly infer properties-of and get_object_vars on final classes
* Fix array_map zipping
* Fix tests
* Fixes
* Fixes
* Fix more stuff
* Recursively resolve type aliases
* Fix typo
* Fixes
* Fix array_is_list assertion on keyed array
* Add BC docs
* Fixes
* fix
* Update
* Update
* Update
* Update
* Seal arrays with count assertions
* Fix #8528
* Fix
* Update
* Improve sealed array foreach logic
* get_object_vars on template properties
* Fix sealed array assertion reconciler logic
* Improved reconciler
* Add tests
* Single source of truth for test types
* Fix tests
* Fixup tests
* Fixup tests
* Fixup tests
* Update
* Fix tests
* Fix tests
* Final fixes
* Fixes
* Use list syntax only when needed
* Fix tests
* Cs-fix
* Update docs
* Update docs
* Update docs
* Update docs
* Update docs
* Document missing types
* Update docs
* Improve class-string-map docs
* Update
* Update
* I love working on psalm :)
* Keep arrays unsealed by default
* Fixup tests
* Fix syntax mistake
* cs-fix
* Fix typo
* Re-import missing types
* Keep strict types only in return types
* argc/argv fixes
* argc/argv fixes
* Fix test
* Comment-out valinor code, pinging @romm pls merge https://github.com/CuyZ/Valinor/pull/246 so we can add valinor to the psalm docs :)
2022-11-05 22:34:42 +01:00
orklah
205e8cc73e
Merge pull request #8670 from danog/fix_8669
...
Fix #8669
2022-11-05 22:29:37 +01:00
923f1d2eb7
Possible fix
2022-11-05 22:23:31 +01:00
Bruce Weirdan
81423dc12b
Remove argc
and argv
elements from $_ENV
...
Fixes vimeo/psalm#8662
2022-11-05 15:19:21 -04:00
da21229cab
Fix #8664
2022-11-05 19:15:46 +01: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
Vincent Langlet
fbaf6afb30
Try
2022-11-03 18:11:01 +01:00
Vincent Langlet
b2f095f1b8
Add tests
2022-11-03 14:39:48 +01:00
Vincent Langlet
4a27322144
serialize is not pure for array of object
2022-11-03 11:48:33 +01:00
Vincent Langlet
ef0a17ee11
Do not report serialize as unused
2022-11-02 22:52:42 +01:00
kkmuffme
e064a0c14d
fix unrelated CI error
2022-10-27 09:23:25 +02:00
kkmuffme
87eb83616e
add basename return type provider
...
Like dirname return type provider of https://github.com/vimeo/psalm/pull/8611
2022-10-26 13:03:53 +02:00
Chauncey McAskill
0afd873787
Fix dirname return type provider
...
Changed:
- Replaced extraction of `$dir_level` literal value to be from the NodeTypeProvider instead of from the statement; based on similar logic in `RoundReturnTypeProvider`.
- Replaced `new` return type creation with `Type` method creation.
- Replaced `null` return with string type.
Fixed:
- Typo on variable name for extracted `StatementsSource`.
- Edge case where `$dir_level` is less than 1.
- Broken unit tests.
2022-10-23 12:11:58 -04:00
Chauncey McAskill
1dfadfa9ec
Add dirname return type provider
2022-10-23 11:56:02 -04:00
orklah
b739b67080
Merge pull request #8594 from kkmuffme/callable-invalidargument-required-param-mismatch-missing-error
...
ensure callbacks have the required number of params
2022-10-22 12:20:29 +02:00
kkmuffme
7d953dfb90
add tests
2022-10-22 08:53:40 +02:00
orklah
48b8efde99
Merge pull request #8584 from boesing/feature/8521
...
Enhance type detection for internal php functions `key`, `current`, `end` and `reset`
2022-10-18 00:07:13 +02:00
Maximilian Bösing
eb6bbfb3b5
qa: remove redundant check as !empty
already ensures that key
does not return null
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-10-17 20:38:34 +02:00
c9ff8c2c67
Prevent re-resolution of static
2022-10-17 20:31:11 +02:00
Maximilian Bösing
7f35bff0d9
feature: enhance type detection for internal php functions key
, current
, end
and reset
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-10-17 20:24:40 +02:00
kkmuffme
2c47d06968
fix tests
2022-10-17 16:25:43 +02:00
7b6e09afc9
Merge branch 'merge_4.x' into immutable_readonly_3
2022-10-17 12:58:41 +02:00
56805ab089
Fix
2022-10-17 12:54:46 +02:00
15f5c593a7
Fix
2022-10-17 12:40:50 +02:00
1abade3c30
Skip
2022-10-17 12:14:07 +02:00
150be5ca22
Update
2022-10-17 10:45:18 +02:00
8d4d0c0e4a
Fixes
2022-10-17 10:33:33 +02:00
53e3889745
Fixes
2022-10-17 10:21:26 +02:00
f816c06331
Fix
2022-10-16 14:39:34 +02:00
8518372cad
Fixes
2022-10-16 14:23:31 +02:00
34000ca90d
Fixes
2022-10-16 13:59:15 +02:00
cbd1a27ea7
Merge branch 'master' into merge_4.x
2022-10-16 13:49:21 +02:00
b79c43a288
Merge remote-tracking branch 'origin/4.x' into merge_4.x
2022-10-16 13:42:43 +02:00
748a74bb2c
Merge remote-tracking branch 'origin/4.x' into HEAD
2022-10-16 13:41:27 +02:00
orklah
921801707d
Merge pull request #8583 from gphargreaves/#8484/fix-datetimeimmutable-sub
...
Correct return type of DateTimeImmutable sub method stub
2022-10-15 14:51:43 +02:00
ADmad
9bd4d7a740
Fix template param for SplDoublyLinkedList.
...
It's key is always an integer.
2022-10-14 11:54:53 +05:30
Greg Hargreaves
06581ce4b0
Add additional checks for concat of non-empty strings to return non-falsy
2022-10-14 01:54:06 +01:00
Greg Hargreaves
8849e8ca38
Fix test for DateTimeImmutable sub method return type
2022-10-14 00:59:54 +01:00
8c9558c92b
Fix #6983 , #8564
2022-10-13 13:42:35 +02:00
orklah
bb9aabe5b1
Merge pull request #8570 from Nicelocal/fix_8569
...
Fix #8569
2022-10-12 20:59:04 +02:00
a7af027645
Fix #8562
2022-10-12 11:40:29 +02:00
3ac0bce203
Fix #8569
2022-10-12 11:24:42 +02:00
Steven Dickinson
68f6ba873e
Fix MinMaxReturnTypeProvider when handling TDependentListKeys
2022-10-11 14:13:40 +01:00
Alies Lapatsin
30dc46528d
Cleaup $ignoredFunctions
2022-10-09 17:40:36 +03:00
f06c459415
Bugfix
2022-10-07 13:18:57 +02:00
Gregory Hargreaves
41a6afda32
Add check for const with reserved word class
2022-10-07 09:44:10 +01:00
Peter de Blieck
15453d4306
Removed imap_delete and imap_undelete from the ignoredFunctions list.
2022-10-06 14:44:49 +02:00
0155ad7472
Immutable readonly 3
2022-10-03 15:13:47 +02:00
45452c7125
Immutable readonly 2
2022-10-03 14:02:41 +02:00
c2ce7e63da
Immutable readonly 1
2022-10-03 11:53:05 +02:00
f11ed46f26
Immutable assertions
2022-10-03 11:32:15 +02:00
ef60a0c88c
Fix properties-of on generics&intersections
2022-10-03 11:28:01 +02:00
3abd0b961f
Immutable Unions
2022-10-03 10:45:36 +02:00
kkmuffme
328561d388
add code for faster debugging next time
2022-09-22 01:01:08 +02:00
kkmuffme
ce76158085
fix crash in <PHP8 with ResourceBundle
...
partially reverts https://github.com/vimeo/psalm/pull/8217
2022-09-22 01:01:08 +02:00
kkmuffme
d69e062426
add RiskyCast tests
2022-09-20 10:59:46 +02:00
kkmuffme
d69be4b9a2
objects even with __toString methods cannot be cast to int/float
2022-09-19 21:54:16 +02:00
Ricardo Boss
bf1c0320fd
Cherry-pick: 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-09-19 21:54:16 +02:00
dennis
3a6b709845
Test to describe use statements being applied
2022-09-19 21:09:45 +02:00
dennis
ab690df4da
Improved class name generation for @throws annotation
2022-09-19 21:09:45 +02:00
dennis
8ffc747349
Add test to document cross namespace behaviour
2022-09-19 21:09:45 +02:00
dennis
b88d2890e2
Fix existing tests
2022-09-19 21:09:45 +02:00
dennis
44785fadfc
Introduce test with code inside namespace
2022-09-19 21:09:45 +02:00
orklah
3b7e508c78
Merge pull request #8473 from kkmuffme/detailed-superglobal-types
...
make superglobals more specific
2022-09-19 10:48:44 +02:00
kkmuffme
e2e6265ba1
ignore nullable issues for $argv/$argc
2022-09-19 09:45:55 +02:00
Peter van Dommelen
05f28ce8cd
Do not widen type to mixed
and lose the existing type information when an Any
assertion is used.
...
Fixes #8084 .
2022-09-18 17:02:09 +02:00
orklah
5db59910bd
Merge pull request #8491 from HypeMC/array-column-fix
...
Fix array_column with object and column name null
2022-09-18 11:25:42 +02:00
HypeMC
602e26edd4
Fix array_column with object and column name null
2022-09-17 21:21:33 +02:00
hirokinoue
2f870776e2
add test case derived from issue #7428
2022-09-17 23:02:25 +09:00
hirokinoue
a2118c65d3
add test case reproducing issue #7428
2022-09-17 22:11:28 +09:00
kkmuffme
b701c7074b
fix tests for detailed $_SERVER
2022-09-15 19:39:02 +02:00
kkmuffme
5c39e66b15
fix tests
2022-09-15 19:38:51 +02:00
Vincent Langlet
32aedbac58
Add dateTimeModify return type provider
2022-09-14 00:53:12 +02:00
Matthew Brown
d957ff2015
Fix mixed type hole when sending Foo<string> to Foo<mixed> ( #8481 )
...
* Fix mixed type hole when sending Foo<string> to Foo<mixed>
* Fix ifThisIs test
* Suppress bugs highlighted with fix
* Fix PHPDoc parsing
2022-09-13 13:13:06 -04:00
kkmuffme
62df25a741
fix test cache inconsistency
2022-09-11 10:28:16 +02:00
kkmuffme
8da5f5eb1a
use exceptions instead of error_log for ParserCacheProvider
...
* use exceptions instead of error_log for ParserCacheProvider like all other cache providers do
* remove duplicate code in ParserCacheProvider
* use same hash as other cache providers
* update Config.php cache directory creation to use same code as ParserCacheProvider
2022-09-11 10:22:48 +02:00
orklah
5cf6fb3574
Merge pull request #8468 from kkmuffme/class-alias-should-not-be-case-insensitive
...
classlike_alias incorrect casing not handled correctly
2022-09-08 23:03:17 +02:00
orklah
eba63a3821
Merge pull request #8367 from kkmuffme/revert-nullable-curl_multi_getcontent
...
partial revert nullable type for curl_multi_getcontent
2022-09-08 22:58:29 +02:00
kkmuffme
6e4c1823d6
partial revert nullable type for curl_multi_getcontent
...
Fix https://github.com/vimeo/psalm/issues/8351
Partially reverts f28ac73777
2022-09-08 21:46:15 +02:00
kkmuffme
4c6abccfb2
fix tests
2022-09-08 21:33:06 +02:00
kkmuffme
1a10654cb3
fix tests
2022-09-08 13:28:43 +02:00
Semyon
f0a8810cf5
Fix ctype_digit assertion bug
2022-09-07 15:49:35 +03:00
Semyon
969c7a098b
Make ctype_digit and ctype_lower work as assertions
2022-09-02 17:37:10 +03:00
Aleksandr Zhuravlev
d7097281ba
trim(), ltrim(), rtrim() now keep lowercase string attribute
2022-08-31 21:02:20 +12:00
Tim Düsterhus
3c2018a1e0
Configure a correct attribute target in stubs/CoreGenericClasses.phpstub
2022-08-24 21:32:26 +02:00
Vincent Langlet
6bc714c867
Add support for callable in array_reduce
2022-08-24 16:04:22 +02:00
Markus Staab
198347fac7
fix test
2022-08-22 16:58:23 +02:00
Markus Staab
a3d58cf2fd
imports
2022-08-22 16:55:26 +02:00
Markus Staab
63915d1e2c
added SensitiveParameter, AllowDynamicProperties php 8.2 attributes
2022-08-22 16:44:55 +02:00
orklah
7ee3a81bce
Merge pull request #8370 from someniatko/issue-8363
...
Ensure we recognize inherited static methods for the first-class callables
2022-08-18 21:50:20 +02:00
0220da0b32
Add tests
2022-08-17 13:30:36 +02:00
Paul Fedorow
8908638219
Fix imageinterlace
function signature
2022-08-12 11:22:45 +02:00