Mark McEver
9764803c55
Allowed taints to pass through urlencode()
2022-12-05 17:25:36 -06: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
68a5511057
Merge remote-tracking branch 'origin/4.x' into HEAD
2022-11-08 10:25:04 +01:00
Marco Pivetta
5e9b921fc6
Making json_encode()
always produce a non-empty-string
, when successful
...
`json_encode()` never produces `''` as a value: that would be invalid JSON anyway
2022-11-07 20:42:47 +01: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
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
748a74bb2c
Merge remote-tracking branch 'origin/4.x' into HEAD
2022-10-16 13:41:27 +02:00
Aleksandr Zhuravlev
d7097281ba
trim(), ltrim(), rtrim() now keep lowercase string attribute
2022-08-31 21:02:20 +12:00
Thomas Gerbet
4b1adaafec
Allow *bin2hex and *bin2base64 functions to keep non-empty-string type
...
Those functions should not return a string when they receive a
non-empty-string in input.
The following example is expected to work:
```php
<?php
/**
* @param non-empty-string $i
*/
function takesNonEmptyString(string $i): void {
echo $i;
}
takesNonEmptyString(bin2hex("a"));
takesNonEmptyString(base64_encode("a"));
```
2022-08-23 16:38:17 +02:00
Corey Taylor
f28ac73777
Fix nullable return types for CallMap functions
2022-07-13 22:44:38 -05:00
AndrolGenhald
285740a753
Merge branch '4.x'
2022-07-07 15:01:38 -05:00
Adrien Foulon
6c49dad38c
fix: ltrim may return class-string #8218
...
Fixes #8218
2022-07-06 02:36:20 +02:00
Bruce Weirdan
e0acf22e40
Merge branch '4.x' into update-master
2022-05-28 14:49:12 -04:00
hirokinoue
4fc34d998b
improve @return annotation of join()
2022-05-14 23:47:46 +09:00
hirokinoue
91640e7e90
improve @return annotation of implode()
2022-05-14 23:44:43 +09:00
Markus Staab
3c837e5d9a
fix missing is_a() parameter type
2022-05-12 15:37:29 +02:00
hirokinoue
2b34b1228b
handle the non-empty case for usort()
2022-04-29 00:36:28 +09:00
hirokinoue
8c64bddf29
handle the non-empty case for uksort()
2022-04-29 00:23:57 +09:00
hirokinoue
37bf36d475
handle the non-empty case for uasort()
2022-04-28 23:49:32 +09:00
hirokinoue
95b5e8cb56
handle the non-empty case for shuffle()
2022-04-28 23:07:43 +09:00
hirokinoue
1605b18678
handle the non-empty case for rsort()
2022-04-28 23:01:17 +09:00
hirokinoue
0770f0128c
improve syntax
2022-04-28 22:44:39 +09:00
Matt Brown
043bbfbbb4
Remove useless array casting as CallMap for stream_select is reset.
2022-04-27 01:40:51 -04:00
hirokinoue
37c53ee783
handle the non-empty case for sort()
2022-04-23 22:51:50 +09:00
Nicolas Giraud
0dc435409c
Replace changes in the CallMap for stream_select by a stub.
2022-03-11 08:52:36 +01:00
Mark McEver
828b093964
Prevent unnecessary filter_var() warnings on primitive types
2022-02-15 14:13:44 -06:00
Patrick Remy
8cd5ccd076
feat: make value-of<T>
capable for template types
2022-01-27 22:28:40 +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
0747b48d06
remove TEmpty
2022-01-03 04:09:59 +02:00
Bruce Weirdan
3cce69189f
array_count_values return type for uncertain arrays
...
Fixes vimeo/psalm#7114
2021-12-10 02:45:58 +02:00
marcosh
07224e7d31
abs should always return a positive integer
2021-12-07 11:52:13 +01:00
Bruce Weirdan
9c324a7d74
Refined strlen()
return type to not include negative ints
...
Fixes vimeo/psalm#7062
2021-12-05 21:35:58 +02:00
Bruce Weirdan
dc271fe25c
Consider emptiness for array_count_values()
...
Fixes vimeo/psalm#7044
2021-12-02 04:51:06 +02:00
ralila
d57c246c93
Add stub for preg_match
2021-11-29 14:21:58 +01:00
ralila
e5ed2e7066
Add @psalm-ignore-falsable-return to the stub
2021-11-14 10:59:24 +01:00
ralila
930ee578f1
Add missing false return value to the stub
2021-11-14 10:36:03 +01:00
ralila
af1b00f212
Add stub for mb_convert_encoding
2021-11-13 22:13:55 +01:00
orklah
3ff3616ef4
add stub for taint detection on vprintf
2021-11-07 09:25:27 +01:00
tminich
2013adafee
Fix missed names in psalm annotations
2021-11-04 16:10:59 +01:00
tminich
541bd6cb36
Fix parameter names in CoreGenericFunctions.phpstub for PHP 8 named parameters
2021-11-04 10:27:07 +01:00
orklah
ce87fc4882
fix is_a when used with Stringable classes
2021-10-28 20:08:43 +02:00
orklah
f387c3f535
fix stub
2021-10-13 10:33:26 +02:00
orklah
1efe272aed
stub for is_a
2021-10-12 22:12:51 +02:00
Dgame
a8ce748d1b
Fixed trim-stub
2021-10-07 20:10:36 +02:00
orklah
b9f14f8687
improve min/max inference, add a return type provider for rand, mt_rand and random_int
2021-10-02 09:53:58 +02:00
Mark McEver
79340b4a6f
Prevent unnecessary filter_var() warnings
2021-09-27 18:46:01 +01:00
Mark McEver
76dade477d
Prevent unnecessary filter_var() warning
2021-09-27 18:34:58 +01:00
Tim van Dijen
417ea9c43d
Fix return-type
2021-09-07 23:02:28 +02:00
Bruce Weirdan
6c475e0be5
Merge pull request #6206 from Jack97/update-return-types
...
Update return types for get_headers and get_meta_tags
2021-07-29 22:38:06 +03:00
Jack Robertson
6ed8a4d292
Update return types for get_headers and get_meta_tags
2021-07-29 20:05:06 +01:00