Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge 4.x #8591

Merged
merged 243 commits into from Oct 17, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
243 commits
Select commit Hold shift + click to select a range
c6854cf
Adds support for fixing missing throws doc block
aszenz May 21, 2022
e28831d
feat: fix ci + preserve existing throws
aszenz May 22, 2022
f94b7ab
chore: add another test
aszenz May 22, 2022
e3f46d9
refactor: use list<string>
aszenz May 23, 2022
ffe1829
Update phpredis.phpstub
sergkash7 Jun 21, 2022
7742d8a
use lock to fix race condition
kkmuffme Jul 10, 2022
ce7d4ee
Merge pull request #8240 from kkmuffme/fix-cache-race-condition-multi…
orklah Jul 10, 2022
a77f6fc
use error_log
kkmuffme Jul 10, 2022
ac39688
Merge pull request #8243 from kkmuffme/change-trigger-error-to-error-log
orklah Jul 10, 2022
3b76ac8
Count Report Format
jack-worman Jul 10, 2022
bcf3c51
Fix GEOSGeometry stubs with default values
BenMorel Jul 3, 2022
057d78d
Merge pull request #8214 from BenMorel/geos2
orklah Jul 11, 2022
7f3d55d
Merge pull request #8244 from jack-worman/CountReport
orklah Jul 11, 2022
470885e
#8200 - improve inferring the "final" `static` type when calling stat…
someniatko Jul 12, 2022
3a50540
#8200 - generalize ExistingAtomicStaticCallAnalyzer::hasStaticInType(…
someniatko Jul 12, 2022
b3e673d
#8200 - flip logic of determining "source" of `static` type in Existi…
someniatko Jul 12, 2022
ecbceb1
#8200 - move Issue8200Test to ClassTemplateTest
someniatko Jul 12, 2022
931b3bb
#8200 - simplify ExistingAtomicStaticCallAnalyzer::hasStaticType()
someniatko Jul 12, 2022
416b597
Merge pull request #7994 from aszenz/4.x
orklah Jul 12, 2022
21a6dd9
#8200 - move tests to the correct provider ("valid" instead of "inval…
someniatko Jul 12, 2022
f28ac73
Fix nullable return types for CallMap functions
othercorey Jul 8, 2022
4fbbf82
Merge pull request #8228 from othercorey/callmap-nullable
orklah Jul 14, 2022
1e0b572
#8200 - bikeshedding the tests
someniatko Jul 14, 2022
cac9ec9
Merge pull request #8249 from someniatko/issue-8200
AndrolGenhald Jul 14, 2022
bb760a2
fix race conditions causing notices if directory does not exist
kkmuffme Jul 21, 2022
233863d
circle CI error for unrelated code?
kkmuffme Jul 21, 2022
e1b0255
fix triggerErrorExits not working
kkmuffme Jul 21, 2022
910bc57
Merge pull request #8304 from kkmuffme/fix-triggerErrorExits-config-n…
orklah Jul 21, 2022
8b59994
Fixed ini_set types for arg value
honca Jul 22, 2022
640d3b6
Merge pull request #8308 from honca/4.x
AndrolGenhald Jul 22, 2022
9d32534
Add stub for DatePeriod
fluffycondor Jul 22, 2022
462ce71
Make DatePeriod implement Traversable oh PHP 7, rename constructor pa…
fluffycondor Jul 25, 2022
b1295d6
Code style
fluffycondor Jul 25, 2022
0b482ac
Merge pull request #8312 from fluffycondor/dateperiod-stub
AndrolGenhald Jul 25, 2022
d7cd84c
Merge pull request #8302 from kkmuffme/fix-cache-directory-race-condi…
orklah Jul 25, 2022
0c652f7
#8330 - take into account that `static` type may have been unwrapped …
someniatko Jul 29, 2022
489706b
Merge pull request #8335 from someniatko/issue-8330
AndrolGenhald Jul 29, 2022
0abde25
#7731 - recognize `@psalm-allow-private-mutation` in PHP 8+ constructors
someniatko Jul 29, 2022
1482643
Merge pull request #8341 from someniatko/issue-7731
AndrolGenhald Jul 29, 2022
14241d7
ReflectionProperty::getValue $object is nullable since php 8.0
mathroc Jul 29, 2022
dcc6636
Merge pull request #8344 from mathroc/chore/update-ReflectionProperty…
orklah Jul 29, 2022
90ac39d
Fix formatCurrency return type
VincentLanglet Jul 30, 2022
6998fab
Merge pull request #8349 from VincentLanglet/formatCurrency
orklah Jul 31, 2022
b4b2bc6
Added better stubs for `DateTimeImmutable`, highlighting how the cons…
Ocramius Jul 31, 2022
dcaf610
Removed `@psalm-immutable` marked from `MyDate` extending `DateTimeIm…
Ocramius Jul 31, 2022
c205d65
`DateTimeImmutable#sub()` always returns another `static` instance, n…
Ocramius Jul 31, 2022
68978b9
s/psalm-pure/psalm-mutation-free, since psalm-mutation-free is safer …
Ocramius Aug 1, 2022
0d32203
add ", but" for InvalidArgument error message where a type is provided
kkmuffme Aug 3, 2022
d2be169
update tests
kkmuffme Aug 3, 2022
1ef3851
Merge pull request #8364 from kkmuffme/add-but-to-differentiate-error…
orklah Aug 3, 2022
f3d6784
#8363 - ensure we recognize inherited static methods for the first-cl…
someniatko Aug 4, 2022
be02e7e
#8363 - support `static` as a type parameter in return types of the f…
someniatko Aug 4, 2022
dc7d26a
Removed `DateTimeImmutable::__construct` from the CallMap: fully cove…
Ocramius Aug 5, 2022
267d760
Removed `DateTimeImmutable::sub()` from the CallMap: fully covered by…
Ocramius Aug 5, 2022
58ca4e0
Removed `DateTimeImmutable::createFromFormat()` from the CallMap: ful…
Ocramius Aug 5, 2022
7ee12c7
Removed `DateTimeImmutable::format()` from the CallMap: fully covered…
Ocramius Aug 5, 2022
2b6fddf
Removed `DateTimeImmutable::getTimezone()` from the CallMap: fully co…
Ocramius Aug 5, 2022
1be04e0
Removed `DateTimeImmutable::getOffset()` from the CallMap: fully cove…
Ocramius Aug 5, 2022
002585b
Removed `DateTimeImmutable::getTimestamp()` from the CallMap: fully c…
Ocramius Aug 5, 2022
18557b8
Removed `DateTimeImmutable::diff()` from the CallMap: fully covered b…
Ocramius Aug 5, 2022
7cd3d49
Removed `DateTimeImmutable::modify()` from the CallMap: fully covered…
Ocramius Aug 5, 2022
cb9939c
Removed `DateTimeImmutable::add()` from the CallMap: fully covered by…
Ocramius Aug 5, 2022
4fe554d
Removed `DateTimeImmutable::setTimezone()` from the CallMap: fully co…
Ocramius Aug 5, 2022
e61c593
Removed `DateTimeImmutable::setTime()` from the CallMap: fully covere…
Ocramius Aug 5, 2022
0a6c9d0
Removed `DateTimeImmutable::setDate()` from the CallMap: fully covere…
Ocramius Aug 5, 2022
964f64a
Removed `DateTimeImmutable::setISODate()` from the CallMap: fully cov…
Ocramius Aug 5, 2022
aaac9cc
Removed `DateTimeImmutable::setTimestamp()` from the CallMap: fully c…
Ocramius Aug 5, 2022
a1ed84f
Removed `DateTimeImmutable::createFromMutable()` from the CallMap: fu…
Ocramius Aug 5, 2022
68ffae0
Simplified `DateTimeImmutable::format()`: always returns a `string`
Ocramius Aug 5, 2022
1382877
Removed `DateTimeImmutable::createFromInterface()` from stubs
Ocramius Aug 5, 2022
57fcc39
Merge pull request #8350 from Ocramius/fix/datetime-constructor-is-no…
orklah Aug 7, 2022
fefd486
Use $codebase->classlike_storage_provider only if it has the required…
Daeroni Aug 5, 2022
89b7b32
Add test for #8373
Daeroni Aug 8, 2022
aae5395
Merge pull request #8376 from Daeroni/fix-8373
AndrolGenhald Aug 8, 2022
8ca594a
always use lock when writing/reading cache data to/from file
kkmuffme Aug 5, 2022
8f6e16a
added truthy-string alias for non-falsy-string
staabm Aug 11, 2022
28f22c7
Merge pull request #8400 from staabm/truthy
orklah Aug 11, 2022
7e010a7
Merge pull request #8372 from kkmuffme/safely-read-write-cache-data
orklah Aug 11, 2022
8908638
Fix `imageinterlace` function signature
paulfedorow Aug 12, 2022
ffe4375
Clarification of `Reflection::getModifierNames()` result type
vjik Aug 12, 2022
4498a52
fix
vjik Aug 12, 2022
24b8b8e
Merge pull request #8403 from paulfedorow/imageinterlace-callmap-fix-4.x
orklah Aug 12, 2022
0d0a049
Merge pull request #8405 from vjik/get-modifiers-name
orklah Aug 12, 2022
7ee3a81
Merge pull request #8370 from someniatko/issue-8363
orklah Aug 18, 2022
9c67b85
Fix typos
krsriq Aug 20, 2022
9170572
Merge pull request #8424 from krsriq/fix_typo
orklah Aug 20, 2022
63915d1
added SensitiveParameter, AllowDynamicProperties php 8.2 attributes
staabm Aug 22, 2022
a3d58cf
imports
staabm Aug 22, 2022
8407cac
improve CI error message
staabm Aug 22, 2022
198347f
fix test
staabm Aug 22, 2022
72a1c05
Restore CliUtils.php
staabm Aug 22, 2022
0b790e0
Merge pull request #8427 from staabm/attr
orklah Aug 22, 2022
93a293c
Allow any attribute for complex types in schema
Aug 23, 2022
4b1adaa
Allow *bin2hex and *bin2base64 functions to keep non-empty-string type
LeSuisse Aug 23, 2022
034a796
Merge pull request #8431 from LeSuisse/bin2hex-base64-stub
AndrolGenhald Aug 23, 2022
6bc714c
Add support for callable in array_reduce
VincentLanglet Aug 24, 2022
88d3382
Merge pull request #8435 from VincentLanglet/arrayReduce
AndrolGenhald Aug 24, 2022
3c2018a
Configure a correct attribute target in stubs/CoreGenericClasses.phpstub
TimWolla Aug 24, 2022
2fdcd5a
Merge pull request #8436 from TimWolla/attribute-target
AndrolGenhald Aug 24, 2022
6a6922d
Update call maps for MongoDB extension
alcaeus Aug 24, 2022
5b8f611
Handle tentative return types for interfaces correctly
alcaeus Aug 25, 2022
48bf549
Add missing parameter type for Serializable::unserialize
alcaeus Aug 26, 2022
1eeea7c
Merge pull request #8428 from den-kuz/4.x
orklah Aug 28, 2022
d709728
trim(), ltrim(), rtrim() now keep lowercase string attribute
SCIF Aug 31, 2022
faf106e
Merge pull request #8444 from SCIF/bugfix-8439
AndrolGenhald Aug 31, 2022
969c7a0
Make ctype_digit and ctype_lower work as assertions
fluffycondor Sep 2, 2022
a671079
Update build-phar.yml
sashashura Sep 2, 2022
82be359
Merge pull request #8451 from sashashura/patch-1
orklah Sep 5, 2022
cfe7fd1
Merge pull request #8450 from fluffycondor/ctype-functions-assertions
orklah Sep 5, 2022
f0a8810
Fix ctype_digit assertion bug
fluffycondor Sep 7, 2022
18f285f
Merge pull request #8466 from fluffycondor/ctype-digit-asserts-not-al…
AndrolGenhald Sep 7, 2022
a17fa24
report invalidCasing when using a class that is not user defined too …
kkmuffme Sep 7, 2022
1a10654
fix tests
kkmuffme Sep 8, 2022
15046c9
preg_replace with anchor will always only have 1 replacement, add lim…
kkmuffme Sep 8, 2022
d0984f4
fix psalm internal errors reported by new checks
kkmuffme Sep 8, 2022
6374a96
Merge pull request #8465 from kkmuffme/invalid-class-casing-for-nativ…
orklah Sep 8, 2022
76cfb91
Merge pull request #8469 from kkmuffme/strictify-anchored-preg-replace
orklah Sep 8, 2022
f84e7af
Merge pull request #8432 from alcaeus/mongodb-stub-corrections
orklah Sep 8, 2022
249d61e
classlike_alias incorrect casing not handled correctly
kkmuffme Sep 8, 2022
c450d95
fix inconsistent function naming
kkmuffme Sep 8, 2022
4c6abcc
fix tests
kkmuffme Sep 8, 2022
6e4c182
partial revert nullable type for curl_multi_getcontent
kkmuffme Aug 3, 2022
eba63a3
Merge pull request #8367 from kkmuffme/revert-nullable-curl_multi_get…
orklah Sep 8, 2022
5cf6fb3
Merge pull request #8468 from kkmuffme/class-alias-should-not-be-case…
orklah Sep 8, 2022
5108834
Merge pull request #8136 from sergkash7/patch-1
orklah Sep 9, 2022
8da5f5e
use exceptions instead of error_log for ParserCacheProvider
kkmuffme Aug 16, 2022
4726454
update leftover md5 in provider to commonly used hash
kkmuffme Aug 16, 2022
8ac86f0
use consistent race condition dir creation code in all places in cache
kkmuffme Aug 18, 2022
978f37e
improve unlinking potential race condition
kkmuffme Aug 24, 2022
62df25a
fix test cache inconsistency
kkmuffme Sep 8, 2022
3748499
Merge pull request #8415 from kkmuffme/consistent-error-logging-for-c…
orklah Sep 11, 2022
4b28415
Pin version of PHPStan phpdoc parser for slevomat rules
muglug Sep 13, 2022
6f298d2
Fix phpcs violations
muglug Sep 13, 2022
7429bc2
Ignore php-parser issue
muglug Sep 13, 2022
95bb71f
Support PHP 7.1 in require-dev restriction
muglug Sep 13, 2022
17ca8ef
`date_get_last_errors()`, `DateTime::getLastErrors()` may return false
gsteel Sep 12, 2022
32aedba
Add dateTimeModify return type provider
VincentLanglet Sep 6, 2022
fec5c8a
Fix cs
VincentLanglet Sep 13, 2022
be3a88d
Merge pull request #8478 from gsteel/correct_date_get_last_errors_ret…
AndrolGenhald Sep 14, 2022
9ed9c4b
Merge pull request #8462 from VincentLanglet/dateTimeModify
orklah Sep 14, 2022
7bc29a9
make superglobals more specific
kkmuffme Jul 29, 2022
5c39e66
fix tests
kkmuffme Sep 10, 2022
a3cb10c
make $_SERVER more detailed
kkmuffme Sep 11, 2022
b701c70
fix tests for detailed $_SERVER
kkmuffme Sep 11, 2022
a2118c6
add test case reproducing issue #7428
hirokinoue Sep 17, 2022
faf4e8e
allow PropertyFetch node to behave like Variable node
hirokinoue Sep 17, 2022
2f87077
add test case derived from issue #7428
hirokinoue Sep 17, 2022
2cf131f
allow StaticPropertyFetch node to behave like Variable node
hirokinoue Sep 17, 2022
9071e87
fix according to psalm analysis
hirokinoue Sep 17, 2022
602e26e
Fix array_column with object and column name null
HypeMC Sep 17, 2022
ee16caf
Make template constraints examples in docs consistent
HypeMC Sep 17, 2022
014cddb
Document the object with properties syntax
HypeMC Sep 17, 2022
3724a83
Merge pull request #8489 from hirokinoue/fix-array_key_exists-false-p…
orklah Sep 18, 2022
1f1fc47
Merge pull request #8493 from HypeMC/object-properties
orklah Sep 18, 2022
89b034a
Merge pull request #8492 from HypeMC/consistent-docs-examples
orklah Sep 18, 2022
5db5991
Merge pull request #8491 from HypeMC/array-column-fix
orklah Sep 18, 2022
eb93f69
Add null-type to several DOM-functions
tvdijen Sep 17, 2022
3b73748
Fix CallMap_historical
tvdijen Sep 18, 2022
2a315be
Fix some more
tvdijen Sep 18, 2022
8185260
Merge pull request #8490 from tvdijen/setAttributeNS
orklah Sep 18, 2022
e2e6265
ignore nullable issues for $argv/$argc
kkmuffme Sep 15, 2022
3b7e508
Merge pull request #8473 from kkmuffme/detailed-superglobal-types
orklah Sep 19, 2022
44785fa
Introduce test with code inside namespace
d-claassen Sep 13, 2022
844d799
Ensure @throws annotations reference valid Exception classes
d-claassen Sep 13, 2022
b88d289
Fix existing tests
d-claassen Sep 13, 2022
8ffc747
Add test to document cross namespace behaviour
d-claassen Sep 17, 2022
ab690df
Improved class name generation for @throws annotation
d-claassen Sep 17, 2022
3a6b709
Test to describe use statements being applied
d-claassen Sep 17, 2022
f31f7be
Merge pull request #8480 from d-claassen/psalter-throws-namespaced-ex…
orklah Sep 19, 2022
e4b7cdf
fix type for (string) true
kkmuffme Aug 3, 2022
3bec76a
fix invalid casts for int
kkmuffme Aug 3, 2022
39ec755
same for float
kkmuffme Aug 3, 2022
d32efb0
float/int always 1 on "error", no PossiblyInvalidCasts by default
kkmuffme Aug 3, 2022
c3eebe2
be less strict for generic string type
kkmuffme Aug 3, 2022
7cdad99
add RiskyCast
kkmuffme Sep 9, 2022
da68e9d
fix psalm-internal risky casts
kkmuffme Sep 9, 2022
bf1c032
Cherry-pick: Try to provide literal int types when possible (fixes #6…
ricardoboss Jan 16, 2022
d69be4b
objects even with __toString methods cannot be cast to int/float
kkmuffme Sep 16, 2022
d69e062
add RiskyCast tests
kkmuffme Sep 20, 2022
5bf59e4
Merge pull request #8366 from kkmuffme/fix-invalid-casts-int-float
orklah Sep 20, 2022
ce76158
fix crash in <PHP8 with ResourceBundle
kkmuffme Aug 16, 2022
328561d
add code for faster debugging next time
kkmuffme Sep 21, 2022
e803af4
use cache for declared function when available before falling back to…
kkmuffme Sep 22, 2022
ebabd4b
Merge pull request #8503 from kkmuffme/fix-phpdoc-errors-reported-for…
orklah Sep 22, 2022
b55fc2b
Merge pull request #8416 from kkmuffme/regression-4.25.0-count-resour…
orklah Sep 23, 2022
b1c0c2d
add hideAllErrorsExceptPassedFiles config option
kkmuffme Sep 21, 2022
b68ac86
add docs
kkmuffme Sep 24, 2022
313ebf4
Merge pull request #8502 from kkmuffme/option-to-only-report-errors-f…
orklah Sep 25, 2022
58fd83a
Add int type aliases based on existing codes
hamburnyog Oct 4, 2022
6b6c320
Arrange use statements alphabetically
hamburnyog Oct 4, 2022
04c9fe8
Arrange use statements alphabetically again
hamburnyog Oct 4, 2022
ae426a0
Remove irrelevant types, use keep aliases
hamburnyog Oct 5, 2022
0c3a62b
Update args
hamburnyog Oct 5, 2022
6051ae7
Merge pull request #8530 from hamburnyog/add-more-int-type-aliases
orklah Oct 5, 2022
f1d1721
Fixed function signatures of imap_delete and imap_undelete
ppdeblieck Oct 5, 2022
ea5c2a1
Changed signature of imap_undelete in 8.1 delta
ppdeblieck Oct 6, 2022
15453d4
Removed imap_delete and imap_undelete from the ignoredFunctions list.
ppdeblieck Oct 6, 2022
b6ddcdf
Merge pull request #8537 from ppdeblieck/stubfix
orklah Oct 6, 2022
41a6afd
Add check for const with reserved word class
gphargreaves Oct 7, 2022
52e96be
Merge pull request #8542 from gphargreaves/class-constant-named-class
orklah Oct 7, 2022
dec8d0e
Mark hash functions as non-false
lptn Oct 9, 2022
3c3839b
Update hash(), hash_file() and hash_init() types
lptn Oct 9, 2022
ee86d63
Remove extra changes
lptn Oct 9, 2022
198a4ba
Return non-empty-string by hash functions
alies-dev Oct 9, 2022
30dc465
Cleaup $ignoredFunctions
alies-dev Oct 9, 2022
ea5f4cb
Add PHP 8.0 delta for hash_hkdf()
alies-dev Oct 9, 2022
dfa8236
add false return type to additional phpredis functions
kkmuffme Oct 9, 2022
4731720
small improvement for return type of mGet
kkmuffme Oct 9, 2022
5bfc0f9
force $value to be string
kkmuffme Oct 9, 2022
88ba845
some more string values
kkmuffme Oct 9, 2022
b424de9
Merge pull request #8553 from lptn/4.x
orklah Oct 9, 2022
b5f6da7
add common phpunit $_SERVER values bool
kkmuffme Oct 10, 2022
fa53050
fix $_FILES
kkmuffme Oct 10, 2022
1e6019d
size and error in $_FILES more specific
kkmuffme Oct 10, 2022
0da493b
fix docs to match example
kkmuffme Oct 10, 2022
3a420f4
phpunit bool|string
kkmuffme Oct 10, 2022
0f6891c
fix typo
orklah Oct 10, 2022
6012981
add import
orklah Oct 10, 2022
99395bb
Merge pull request #8561 from kkmuffme/more-specific-superglobals-fee…
orklah Oct 10, 2022
e440b34
Merge pull request #8555 from kkmuffme/phpredis-methods-return-false-…
orklah Oct 10, 2022
68f6ba8
Fix MinMaxReturnTypeProvider when handling TDependentListKeys
nosnickid Oct 11, 2022
7ec5ffb
Merge pull request #8567 from nosnickid/fix-min-max-return-type
orklah Oct 11, 2022
f573ef5
Correct return type of DateTimeImmutable sub method stub
Oct 13, 2022
ef0d225
Remove link to php-src as was part of the documented reason for the r…
Oct 13, 2022
8849e8c
Fix test for DateTimeImmutable sub method return type
Oct 13, 2022
06581ce
Add additional checks for concat of non-empty strings to return non-f…
Oct 14, 2022
b89ff32
Remove duplicated numeric type declaration
Oct 14, 2022
dbb8815
Merge pull request #8585 from gphargreaves/#8315/concat-non-empty-str…
orklah Oct 15, 2022
9218017
Merge pull request #8583 from gphargreaves/#8484/fix-datetimeimmutabl…
orklah Oct 15, 2022
748a74b
Merge remote-tracking branch 'origin/4.x' into HEAD
danog Oct 16, 2022
b79c43a
Merge remote-tracking branch 'origin/4.x' into merge_4.x
danog Oct 16, 2022
4912651
Fix
danog Oct 16, 2022
cbd1a27
Merge branch 'master' into merge_4.x
danog Oct 16, 2022
34000ca
Fixes
danog Oct 16, 2022
8518372
Fixes
danog Oct 16, 2022
f816c06
Fix
danog Oct 16, 2022
53e3889
Fixes
danog Oct 17, 2022
8d4d0c0
Fixes
danog Oct 17, 2022
150be5c
Update
danog Oct 17, 2022
1abade3
Skip
danog Oct 17, 2022
15f5c59
Fix
danog Oct 17, 2022
5427835
Re-apply changes manually
danog Oct 17, 2022
56805ab
Fix
danog Oct 17, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
7 changes: 7 additions & 0 deletions .github/workflows/build-phar.yml
Expand Up @@ -8,8 +8,13 @@ on:
types:
- published

permissions:
contents: read

jobs:
pre_job:
permissions:
actions: write
runs-on: ubuntu-latest
outputs:
should_skip: ${{ steps.skip_check.outputs.should_skip }}
Expand All @@ -24,6 +29,8 @@ jobs:
paths: '["bin/**", "assets/**", "build/**", "dictionaries/**", "src/**", "stubs/**", "psalm", "psalm-language-server", "psalm-plugin", "psalm-refactor", "psalter", "box.json.dist", "composer.json", "config.xsd", "keys.asc.gpg", "scoper.inc.php"]'

build-phar:
permissions:
contents: write # for release
needs: pre_job
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
runs-on: ubuntu-latest
Expand Down
3 changes: 2 additions & 1 deletion composer.json
Expand Up @@ -54,7 +54,8 @@
"slevomat/coding-standard": "^7.0",
"phpstan/phpdoc-parser": "1.6.4",
"squizlabs/php_codesniffer": "^3.6",
"symfony/process": "^4.3 || ^5.0 || ^6.0"
"symfony/process": "^4.3 || ^5.0 || ^6.0",
"weirdan/prophecy-shim": "^1.0 || ^2.0"
},
"suggest": {
"ext-igbinary": "^2.0.5 is required, used to serialize caching data",
Expand Down
51 changes: 37 additions & 14 deletions config.xsd
Expand Up @@ -75,6 +75,7 @@
<xs:attribute name="disableSuppressAll" type="xs:boolean" default="false" />
<xs:attribute name="triggerErrorExits" type="TriggerErrorExitsType" default="default" />
<xs:attribute name="threads" type="xs:integer" />
<xs:anyAttribute processContents="skip" />
</xs:complexType>

<xs:complexType name="ProjectFilesType">
Expand All @@ -83,24 +84,25 @@
<xs:element name="file" minOccurs="0" maxOccurs="unbounded" type="NameAttributeType" />
<xs:element name="ignoreFiles" minOccurs="0" maxOccurs="1" type="IgnoreFilesType" />
</xs:choice>
<xs:anyAttribute processContents="skip"/>
<xs:anyAttribute processContents="skip" />
</xs:complexType>

<xs:complexType name="TaintAnalysisType">
<xs:choice maxOccurs="unbounded">
<xs:element name="ignoreFiles" minOccurs="0" maxOccurs="1" type="IgnoreFilesType" />
</xs:choice>
<xs:anyAttribute processContents="skip"/>
<xs:anyAttribute processContents="skip" />
</xs:complexType>

<xs:complexType name="NameAttributeType">
<xs:attribute name="name" type="xs:string" use="required" />
<xs:anyAttribute processContents="skip"/>
<xs:anyAttribute processContents="skip" />
</xs:complexType>

<xs:complexType name="StubsAttributeType">
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="preloadClasses" type="xs:boolean" default="false" />
<xs:anyAttribute processContents="skip" />
</xs:complexType>

<xs:complexType name="IgnoreFilesType">
Expand All @@ -110,15 +112,15 @@
</xs:choice>

<xs:attribute name="allowMissingFiles" type="xs:string" />
<xs:anyAttribute processContents="skip"/>
<xs:anyAttribute processContents="skip" />
</xs:complexType>

<xs:complexType name="ProjectDirectoryAttributeType">
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="ignoreTypeStats" type="xs:string" />
<xs:attribute name="resolveSymlinks" type="xs:boolean" />
<xs:attribute name="useStrictTypes" type="xs:string" />
<xs:anyAttribute processContents="skip"/>
<xs:anyAttribute processContents="skip" />
</xs:complexType>

<xs:complexType name="FileExtensionsType">
Expand All @@ -131,50 +133,51 @@
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:anyAttribute processContents="skip"/>
<xs:anyAttribute processContents="skip" />
</xs:complexType>

<xs:complexType name="MockClassesType">
<xs:sequence>
<xs:element name="class" maxOccurs="unbounded" type="NameAttributeType" />
</xs:sequence>
<xs:anyAttribute processContents="skip"/>
<xs:anyAttribute processContents="skip" />
</xs:complexType>

<xs:complexType name="UniversalObjectCratesType">
<xs:sequence>
<xs:element name="class" maxOccurs="unbounded" type="NameAttributeType" />
</xs:sequence>
<xs:anyAttribute processContents="skip"/>
<xs:anyAttribute processContents="skip" />
</xs:complexType>

<xs:complexType name="ExceptionsType">
<xs:sequence>
<xs:element name="class" minOccurs="0" maxOccurs="unbounded" type="ExceptionType" />
<xs:element name="classAndDescendants" minOccurs="0" maxOccurs="unbounded" type="ExceptionType" />
</xs:sequence>
<xs:anyAttribute processContents="skip"/>
<xs:anyAttribute processContents="skip" />
</xs:complexType>

<xs:complexType name="StubsType">
<xs:sequence>
<xs:element name="file" maxOccurs="unbounded" type="StubsAttributeType" />
</xs:sequence>
<xs:anyAttribute processContents="skip"/>
<xs:anyAttribute processContents="skip" />
</xs:complexType>

<xs:complexType name="ExitFunctionsType">
<xs:sequence>
<xs:element name="function" maxOccurs="unbounded" type="NameAttributeType" />
</xs:sequence>
<xs:anyAttribute processContents="skip"/>
<xs:anyAttribute processContents="skip" />
</xs:complexType>

<xs:complexType name="PluginsType">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="plugin">
<xs:complexType>
<xs:attribute name="filename" type="xs:string" use="required" />
<xs:anyAttribute processContents="skip" />
</xs:complexType>
</xs:element>
<xs:element name="pluginClass">
Expand All @@ -183,10 +186,11 @@
<xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
</xs:sequence>
<xs:attribute name="class" type="xs:string" use="required" />
<xs:anyAttribute processContents="skip" />
</xs:complexType>
</xs:element>
</xs:choice>
<xs:anyAttribute processContents="skip"/>
<xs:anyAttribute processContents="skip" />
</xs:complexType>

<xs:complexType name="IssueHandlersType">
Expand Down Expand Up @@ -411,6 +415,7 @@
<xs:element name="ReferenceConstraintViolation" type="IssueHandlerType" minOccurs="0" />
<xs:element name="ReferenceReusedFromConfusingScope" type="IssueHandlerType" minOccurs="0" />
<xs:element name="ReservedWord" type="IssueHandlerType" minOccurs="0" />
<xs:element name="RiskyCast" type="IssueHandlerType" minOccurs="0" />
<xs:element name="StringIncrement" type="IssueHandlerType" minOccurs="0" />
<xs:element name="TaintedCallable" type="IssueHandlerType" minOccurs="0" />
<xs:element name="TaintedCookie" type="IssueHandlerType" minOccurs="0" />
Expand Down Expand Up @@ -482,7 +487,7 @@
<xs:element name="UnusedReturnValue" type="IssueHandlerType" minOccurs="0" />
<xs:element name="UnusedVariable" type="IssueHandlerType" minOccurs="0" />
</xs:choice>
<xs:anyAttribute processContents="skip"/>
<xs:anyAttribute processContents="skip" />
</xs:complexType>

<xs:complexType name="IssueHandlerType">
Expand All @@ -495,11 +500,13 @@
</xs:choice>

<xs:attribute name="type" type="ErrorLevelType" use="required" />
<xs:anyAttribute processContents="skip" />
</xs:complexType>
</xs:element>
</xs:sequence>

<xs:attribute name="errorLevel" type="ErrorLevelType" />
<xs:anyAttribute processContents="skip" />
</xs:complexType>

<xs:complexType name="PluginIssueHandlerType">
Expand All @@ -512,12 +519,14 @@
</xs:choice>

<xs:attribute name="type" type="ErrorLevelType" use="required" />
<xs:anyAttribute processContents="skip"/>
</xs:complexType>
</xs:element>
</xs:sequence>

<xs:attribute name="errorLevel" type="ErrorLevelType" />
<xs:attribute name="name" type="xs:string" use="required" />
<xs:anyAttribute processContents="skip"/>
</xs:complexType>

<xs:complexType name="MethodIssueHandlerType">
Expand All @@ -531,11 +540,13 @@
</xs:choice>

<xs:attribute name="type" type="ErrorLevelType" use="required" />
<xs:anyAttribute processContents="skip" />
</xs:complexType>
</xs:element>
</xs:sequence>

<xs:attribute name="errorLevel" type="ErrorLevelType" />
<xs:anyAttribute processContents="skip" />
</xs:complexType>

<xs:complexType name="FunctionIssueHandlerType">
Expand All @@ -549,11 +560,13 @@
</xs:choice>

<xs:attribute name="type" type="ErrorLevelType" use="required" />
<xs:anyAttribute processContents="skip" />
</xs:complexType>
</xs:element>
</xs:sequence>

<xs:attribute name="errorLevel" type="ErrorLevelType" />
<xs:anyAttribute processContents="skip" />
</xs:complexType>

<xs:complexType name="ArgumentIssueHandlerType">
Expand All @@ -567,11 +580,13 @@
</xs:choice>

<xs:attribute name="type" type="ErrorLevelType" use="required" />
<xs:anyAttribute processContents="skip" />
</xs:complexType>
</xs:element>
</xs:sequence>

<xs:attribute name="errorLevel" type="ErrorLevelType" />
<xs:anyAttribute processContents="skip" />
</xs:complexType>

<xs:complexType name="ClassIssueHandlerType">
Expand All @@ -585,11 +600,13 @@
</xs:choice>

<xs:attribute name="type" type="ErrorLevelType" use="required" />
<xs:anyAttribute processContents="skip" />
</xs:complexType>
</xs:element>
</xs:sequence>

<xs:attribute name="errorLevel" type="ErrorLevelType" />
<xs:anyAttribute processContents="skip" />
</xs:complexType>

<xs:complexType name="PropertyIssueHandlerType">
Expand All @@ -603,11 +620,13 @@
</xs:choice>

<xs:attribute name="type" type="ErrorLevelType" use="required" />
<xs:anyAttribute processContents="skip" />
</xs:complexType>
</xs:element>
</xs:sequence>

<xs:attribute name="errorLevel" type="ErrorLevelType" />
<xs:anyAttribute processContents="skip" />
</xs:complexType>

<xs:complexType name="ClassConstantIssueHandlerType">
Expand Down Expand Up @@ -639,28 +658,32 @@
</xs:choice>

<xs:attribute name="type" type="ErrorLevelType" use="required" />
<xs:anyAttribute processContents="skip" />
</xs:complexType>
</xs:element>
</xs:sequence>

<xs:attribute name="errorLevel" type="ErrorLevelType" />
<xs:anyAttribute processContents="skip" />
</xs:complexType>

<xs:complexType name="GlobalsType">
<xs:sequence>
<xs:element name="var" maxOccurs="unbounded" type="IdentifierType" />
</xs:sequence>
<xs:anyAttribute/>
<xs:anyAttribute processContents="skip" />
</xs:complexType>

<xs:complexType name="IdentifierType">
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="type" type="xs:string" use="required" />
<xs:anyAttribute processContents="skip" />
</xs:complexType>

<xs:complexType name="ExceptionType">
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="onlyGlobalScope" type="xs:string" />
<xs:anyAttribute processContents="skip" />
</xs:complexType>

<xs:simpleType name="ErrorLevelType">
Expand Down