1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-14 10:17:33 +01:00
Commit Graph

334 Commits

Author SHA1 Message Date
AndrolGenhald
9310a4ff5a Fix issues with int range unpacking and with min/max. 2022-02-18 15:55:26 -06:00
8d0c1c62e8
Ensure all template parameters are specified in classes, interfaces, traits 2022-01-31 10:06:31 +01:00
orklah
a7b72b865f remove TPositiveInt usage for TIntRange 2022-01-23 22:04:18 +01: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
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
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
orklah
b633619a2c Merge remote-tracking branch 'upstream/4.x' into upstream-master 2022-01-14 21:01:25 +01: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
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
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
ab60d311c2
Merge pull request #7188 from vimeo/muglug-use-invalidscalarargument-less 2022-01-03 06:04:42 +02:00
orklah
0747b48d06
remove TEmpty 2022-01-03 04:09:59 +02:00
Matthew Brown
b419c299e3
Use InvalidScalarArgument only when we can be sure PHP attempts coercion 2022-01-02 14:56:18 +02:00
rarila
97e6511fab Set number of lines before and after namespace. 2021-12-15 04:58:32 +01:00
AndrolGenhald
10b6b9aef0 Fix optional arguments in number_format (fixes #7158). 2021-12-14 09:10:05 -06:00
adrew
989c3ada2e Fix type inference of closure params 2021-12-11 22:51:18 +03:00
Kamil Tekiela
098238ff7f Create test for count_chars 2021-12-08 22:57:32 +00:00
marcosh
9c4187fd2f fix abs tests 2021-12-07 12:00:52 +01:00
ralila
8fb2e0f885 Handle some partials 2021-12-04 21:55:53 +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
ralila
9a7d0809d2 Restrict tests with PREG_UNMATCHED_AS_NULL to PHP >= 7.2 2021-11-30 03:29:41 +01:00
ralila
c29e943244 Add some tests 2021-11-30 03:19:27 +01:00
ralila
e5c1a35e31 Adjust tests 2021-11-29 14:24:15 +01: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
sasezaki
e3c6464a91 accept ::class constant strings for literal argument 2021-11-03 13:44:14 +09:00
orklah
ce87fc4882 fix is_a when used with Stringable classes 2021-10-28 20:08:43 +02:00
orklah
fb8b07613d Allow sending possibly_undefined inputs to optional params 2021-10-10 12:44:04 +02:00
orklah
682784c886 array_is_list on empty array returns true 2021-10-08 17:05:35 +02:00
orklah
f641d9e95a assert that some type is a list 2021-10-02 10:02:22 +02:00
orklah
4c6f43884c fix test 2021-09-29 22:55:01 +02:00
orklah
2a2e7c5e32 prevent object leaking that lead to changes in callmap 2021-09-29 22:27:34 +02:00
bjscharp
ac5ea252ff Added test to detect problems and inconsistencies in CallMap files
- Fixed inconsistencies in callmap delta files (mainly 8.0)
- Added several missing changes in the bc_* functions
- Added several missing changes in the mb_* functions
- Added several missing changes in the xml_parser_* functions
- Fixed several issues with sodium_ functions
- Removed all but one of the date_* functions. All were marked as having lost the option to return false, despite this only being true for date_format
2021-08-05 19:07:31 +02:00
orklah
cefa9b919e change wording 2021-07-20 23:55:49 +02:00
orklah
58dd3f6f94 change wording 2021-07-20 23:53:04 +02:00
orklah
acfdb82856 Basic implementation 2021-07-20 23:34:38 +02:00
orklah
0bd8b03f7a Fix usage of gettype in a switch with closed resource 2021-07-14 12:49:46 +02:00
orklah
688367de38 Always emit InvalidArgument when the parameter is always false and not accepted 2021-07-13 00:06:36 +02:00
Bruce Weirdan
83bf9b8ed9
Merge pull request #5608 from paxal/patch/preg_replace_callback
Allow to use string key for preg_replace_callback callable argument
2021-07-11 04:55:03 +03:00
Bruce Weirdan
689315b05f
Fix sscanf() signature (#5901)
Fixes vimeo/psalm#5870
2021-06-07 13:19:17 -04:00
AndrolGenhald
518d0af895
Strict int/float comparison for conditional types, improve range return type (#5601) 2021-04-09 11:28:48 -04:00
Cyril PASCAL
c45e47d8ad Allow to use string key for preg_replace_callback callable argument 2021-04-09 15:33:16 +02:00
AndrolGenhald
d022910599
ConcatAnalyzer improvements and non-falsy-string fixes. (#5544)
* ConcatAnalyzer improvements.

Deduplicate code.
Improve type inference.
Allow literal type inference when only one side has multiple types (fixes #5483).
Fix invalid type inference with negative int as right operand.

* Fix inference to be lowercase-string when concatenating int.

* Fix TNonEmptyLowercaseString to not be subtype of TNonFalsyString.

'0' is a non-empty-lowercase-string that is falsy.

* Fix other issues with non-falsy-string.

* Nest ands and ors

Co-authored-by: Matthew Brown <github@muglug.com>
2021-03-31 23:16:21 -04:00
AndrolGenhald
d4590711d6
Fix object-like array keys when combining string and automatic keys (fixes #5427). (#5428)
* Fix object-like array keys (fixes #5427).

* Fix incorrect return types for tests.

* Fix false positive list with literal int key.
2021-03-19 21:44:44 -04:00
orklah
0a4ad5733b
add stubs for min/max (#5353) 2021-03-11 00:13:17 -05:00