Bruce Weirdan
d10e384338
Report first class callables generated for unknown static methods
...
Fixes vimeo/psalm#10170
2024-02-11 02:24:27 +01:00
Bruce Weirdan
def0489b98
Process @psalm-this-out
on __construct()
as well
...
Fixes vimeo/psalm#9649
2024-02-11 01:53:30 +01:00
Bruce Weirdan
ceaea625f3
Merge pull request #10675 from robchett/prevent_nullable_mixed
2024-02-10 14:20:36 -04:00
Bruce Weirdan
2a063ff843
Merge pull request #10686 from weirdan/forbid-constructor-return-values
2024-02-09 20:56:17 -04:00
Bruce Weirdan
6b405937ab
Forbid constructors from returning any values
...
Fixes vimeo/psalm#9713
2024-02-10 01:34:51 +01:00
Bruce Weirdan
ba4e312594
Merge pull request #10678 from weirdan/10669-class-consts-in-shapes
2024-02-09 13:00:19 -04:00
robchett
5579fd469b
Prevent mixed|null when function param is mixed with a null default value
2024-02-08 20:22:57 +00:00
Bruce Weirdan
2f0b85ff65
Support parsing constants in shapes
...
Fixes vimeo/psalm#10669
2024-02-08 04:30:42 +01:00
Bruce Weirdan
fa5f15058b
Merge pull request #10091 from vudaltsov/improve-refelection-stubs
2024-02-07 22:18:56 -04:00
Bruce Weirdan
f9a23149fe
Merge pull request #10679 from weirdan/8323-dont-show-backtrace-in-InvalidDocblock-issue-message
2024-02-07 22:00:01 -04:00
Bruce Weirdan
6b6bed5850
Don't show backtrace in InvalidDocblock
issue message
...
Fixes vimeo/psalm#8323
2024-02-08 01:20:57 +01:00
Bruce Weirdan
aedea60827
Merge pull request #10677 from robchett/template_union_object_incorrect_assertions
2024-02-07 18:25:02 -04:00
Bruce Weirdan
06dbd4e4d3
Merge pull request #10676 from weirdan/10667-narrow-ord-return-type
2024-02-07 17:41:43 -04:00
robchett
7289f642d9
Fix other assertion errors with union templates
2024-02-07 21:35:24 +00:00
robchett
2d48916f8a
Fix is_object false positive when 'V as int|stdClass'
2024-02-07 21:14:58 +00:00
Bruce Weirdan
f9044cb4e4
Narrow ord()
return type to int<0,255>
...
Fixes vimeo/psalm#10667
2024-02-07 21:49:59 +01:00
Valentin Udaltsov
f9ff9d34f0
Added ReflectionParameter::getPosition to CallMap_historical.php
2024-02-07 02:47:49 +03:00
Valentin Udaltsov
07a64f6894
Improved Reflection stubs
...
ReflectionParameter::getPosition() is non-negative-int.
ReflectionMethod name property is always non-empty-string.
ReflectionAttribute::getTarget() returns Attribute::TARGET_* instead of int-mask. Even for attributes of promoted properties (https://3v4l.org/rpM1t ).
*::getAttributes() always returns a list (https://3v4l.org/LYAMb ).
2024-02-07 02:39:56 +03:00
4a5dbcaebc
Merge pull request #10671 from danog/temp_revert
...
Revert partial mistakenly pushed fix
2024-02-06 23:52:24 +01:00
b42c273556
Revert partial mistakenly pushed fix
...
This reverts commit 7d19f30961
.
2024-02-06 23:42:11 +01:00
7d19f30961
Fix #10667
2024-02-06 23:35:18 +01:00
Bruce Weirdan
b54e0b2fd6
Merge pull request #10666 from weirdan/10662-strip-callmap-prefixes-from-parameter-names
2024-02-06 16:07:48 -04:00
Bruce Weirdan
2fc2a37ca0
Merge pull request #10665 from issidorov/parsing-magic-methods
2024-02-06 16:00:22 -04:00
Bruce Weirdan
1c36da6dda
Strip callmap prefixes from parameter names
...
Fixes vimeo/psalm#10662
2024-02-06 20:52:42 +01:00
Ivan Sidorov
afaaa3d6df
Fix parsing magic method annotations
...
Fix parsing for code:
```
/**
* @method static (string|int)[] getArray()
* @method static (callable() : string) getCallable()
*/
class MyClass {}
```
Resolved tests:
```
1) testMethodAnnotation with data set "static (string|int)[] getArray()"
2) testMethodAnnotation with data set "static (callable() : string) getCallable()"
```
2024-02-06 17:01:28 +00:00
Ivan Sidorov
6b3380b05f
Regression and fail tests
...
List fail tests:
```
1) testMethodAnnotation with data set "static (string|int)[] getArray()"
Undefined array key 0
/workspaces/psalm/tests/ClassLikeDocblockParserTest.php:201
2) testMethodAnnotation with data set "static (callable() : string) getCallable()"
Undefined array key 0
/workspaces/psalm/tests/ClassLikeDocblockParserTest.php:201
```
2024-02-06 17:01:28 +00:00
Bruce Weirdan
508da9abd4
Merge pull request #10661 from vimeo/10018-flag-stdclass-constructor-with-arguments
2024-02-05 20:31:26 -04:00
Bruce Weirdan
62b525993d
Flag stdClass::__construct()
calls that have arguments
...
Fixes vimeo/psalm#10018
2024-02-06 01:24:18 +01:00
Bruce Weirdan
46217057a1
Merge pull request #10659 from weirdan/7395-suppress-UndefinedClass-in-whatever_exists
2024-02-05 15:58:25 -04:00
Bruce Weirdan
b822c3339d
Suppress UndefinedClass
in whatever_exists()
...
Fixes vimeo/psalm#7395
2024-02-05 20:44:09 +01:00
Bruce Weirdan
f40e23faef
Merge pull request #10655 from weirdan/late-binding-of-enum-properties
2024-02-05 15:17:42 -04:00
Bruce Weirdan
5d671a4775
Merge pull request #10630 from kkmuffme/additional-fix-for-inconsistent-basedir
2024-02-05 15:01:51 -04:00
Bruce Weirdan
578046da4a
Merge pull request #10651 from edsrzf/missing-override
2024-02-05 07:16:40 -04:00
Bruce Weirdan
c40f232d31
Merge pull request #10629 from edsrzf/analyze-dynamic-fetches
2024-02-05 07:16:03 -04:00
Evan Shaw
4cec31eba9
Test for dynamic enum fetch
2024-02-05 21:56:30 +13:00
Evan Shaw
a827806709
ParseError for dynamic constants before PHP 8.3
2024-02-05 21:49:40 +13:00
kkmuffme
2008ea078a
code review add die to forbidden functions for psalm itself
2024-02-05 08:19:23 +01:00
kkmuffme
ee7187c8d6
directory_separator optional wrong
2024-02-05 08:19:06 +01:00
Bruce Weirdan
ddb02b9e94
Merge pull request #10603 from weirdan/fix-existing_whatever-references
2024-02-05 01:05:38 -04:00
Bruce Weirdan
52eadab971
Late binding of enum cases
...
Resolves a number of long-standing bugs ('Failed to infer case value ...')
Fixes vimeo/psalm#10374
Fixes vimeo/psalm#10560
Fixes vimeo/psalm#10643
Fixes vimeo/psalm#8978
2024-02-05 04:12:19 +01:00
Bruce Weirdan
6d572a681c
Apply suggestions from code review
2024-02-04 20:43:08 +01:00
Bruce Weirdan
9ac2383efd
Merge pull request #10654 from weirdan/10650-do-not-add-callable-as-native-property-type
2024-02-04 15:32:59 -04:00
Bruce Weirdan
b2a2cd7884
Allow adding Closure
as a native property type
2024-02-04 19:20:54 +01:00
Bruce Weirdan
e8b47f7d42
Do not add callable
as a native property type
...
It's invalid in all PHP versions: https://3v4l.org/bXWo2
Also see php.net/manual/en/language.types.declarations.php#language.types.declarations.base.function
Fixes vimeo/psalm#10650
2024-02-04 18:52:20 +01:00
Evan Shaw
8396360d30
Emit MissingOverrideAttribute
2024-02-04 21:07:27 +13:00
Evan Shaw
c71ad2221c
Move Override tests to separate file
2024-02-04 21:07:27 +13:00
Evan Shaw
7d07e258a3
Add MissingOverrideAttribute issue
2024-02-04 21:07:22 +13:00
Bruce Weirdan
59df6a728f
Merge pull request #10649 from weirdan/ci-clarify-pull-request-labels-check
...
Clarify that Pull request labels failure is to be resolved by maintainers
2024-02-03 19:09:29 -04:00
Bruce Weirdan
7c7c216b1b
Clarify that Pull request labels failure is to be resolved by maintainers
2024-02-03 23:07:52 +01:00
Bruce Weirdan
3b8d81b90e
Merge pull request #10644 from edsrzf/invalid-override
2024-02-03 18:05:10 -04:00