1
0
mirror of https://github.com/danog/psalm.git synced 2024-11-30 04:39:00 +01:00
Commit Graph

12245 Commits

Author SHA1 Message Date
Barney Laurance
b70d3e228e WIP: Add new option --output-format=by-issue-severity to sort issues by level and type 2022-12-01 22:02:08 +00:00
orklah
8e43460a1a
Merge pull request #8808 from p810/add-forbiddenFunctions-to-configuration-docs
Adds documentation for the `forbiddenFunctions` config option
2022-12-01 21:24:36 +01:00
orklah
433e272149
Merge pull request #8809 from danog/fix_8806
Fix #8806
2022-12-01 21:00:40 +01:00
796462961d Fix 2022-12-01 20:18:07 +01:00
7f15d47c19 Add tests 2022-12-01 20:14:37 +01:00
3150ad2b27 Fix #8806 2022-12-01 20:12:20 +01:00
Payton Bice
02329227d8 Adds documentation for the forbiddenFunctions config option 2022-12-01 13:42:02 -05:00
orklah
b4aa951caa
Merge pull request #8798 from orklah/min_count
fix sealed combination
2022-12-01 18:35:02 +01:00
orklah
aee4605041
Merge pull request #8624 from kkmuffme/check-never-return-more-strictly-v5
check "never" return type more strictly
2022-12-01 18:23:04 +01:00
Bruce Weirdan
c6551a61e7
Merge pull request #8805 from sasezaki/patch-1 2022-12-01 11:59:24 -04:00
sasezaki
de33d94802
Update installation.md - 5 requires PHP >= 7.4 2022-12-02 00:35:56 +09: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
orklah
3957eb753a fix sealed array combination 2022-11-30 23:26:34 +01:00
orklah
bce4b55525
Merge pull request #8796 from orklah/reconcileFalse
handle true/false reconciliation consistently, fix #8795
2022-11-30 20:35:44 +01:00
orklah
ea4fe7422a
Merge pull request #8794 from danog/fix_8772
Ignore non-existing classes during initial scan of intersection types
2022-11-30 20:35:29 +01:00
orklah
40fa8282ee CS fix 2022-11-30 20:18:09 +01:00
orklah
229f613b8e handle true/false reconciliation consistently, fix #8795 2022-11-30 20:15:11 +01:00
9c35ed2eb7 Ignore non-existing classes during initial scan of intersection types 2022-11-30 17:33:58 +01:00
Bruce Weirdan
870f5817d2
Merge pull request #8789 from weirdan/defer-cache-directory-creation
Fixes https://github.com/vimeo/psalm/issues/4267
2022-11-30 10:52:17 -04:00
orklah
4e177bf0c9
Merge pull request #8790 from malarzm/patch-1
[Docs] Conditional types - remove unfinished sentence
2022-11-30 07:06:01 +01:00
Matthew Brown
7877570aaf
Remove CallMapTest.php from Psalm self-analysis
FIle has a very heavy include that doubles Psalm's time
2022-11-30 00:28:00 -05:00
Maciej Malarz
28188d113a
Remove unfinished sentence 2022-11-29 23:52:27 +01:00
Bruce Weirdan
6fd2ff14e7
Document BC break 2022-11-29 04:29:26 -04:00
Bruce Weirdan
6b3dd56850
Defer cache directory creation until it's needed
Honestly, this is a bit of a hack, as we let `Config` to generate the
cache directory name and then reset it to null from the cli entrypoint.
Yet it's easier than passing a no-cache flag through so many layers of
static calls.

`$this->cache_directory_initialized` flag is used to make sure we
attempt to create the directory only once.

Fixes vimeo/psalm#4267
2022-11-29 04:16:59 -04:00
Bruce Weirdan
6fff6dfc65
Merge pull request #8788 from weirdan/fix-xml-report-crashes-on-8.1
Fixes https://github.com/vimeo/psalm/issues/8321
2022-11-28 18:11:33 -04:00
Bruce Weirdan
874eb7d2ce
Fix crashes when XML report is used on PHP 8.1
Fixes vimeo/psalm#8321
2022-11-28 18:01:35 -04:00
Bruce Weirdan
9d597cf370
Merge pull request #8782 from weirdan/check-runtime-requirements
Fixes https://github.com/vimeo/psalm/issues/7560
2022-11-27 20:00:28 -04:00
Bruce Weirdan
94dac9f9e7
Merge pull request #8783 from weirdan/bump-slevomat-coding-standard 2022-11-27 16:35:54 -04:00
Bruce Weirdan
ed36f2c2e8
Bump slevomat/coding-standard
This prevents issues with incompatible `phpstan/phpdoc-parser`.

`slevomat/coding-standard:8.3` claimed compatibility with
`phpstan/phpdoc-parser:^1.6`, but it fails with a fatal error when
`phpstan/phpdoc-parser:1.14` is installed (apparently there was a BC
break in a minor version of `phpstan/phpdoc-parser`).

Since 8.4 slevomat/coding-standard adopted a more conservative
dependency strategy, and they don't allow new untested versions of
`phpstan/phpdoc-parser`.

8.4 still allows PHP 7.2, so we should have no problems due to 7.x
  removal.
2022-11-27 16:16:52 -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
Bruce Weirdan
03def00f27
Check runtime requirements
`vendor/autoload/check_platform.php` may be disabled by the user
`composer.json`, so we have to repeat the check for runtime
requirements.

Fixes vimeo/psalm#7560
2022-11-27 08:05:30 -04:00
Bruce Weirdan
24769a2089
Merge pull request #8777 from weirdan/move-mockery-to-require-dev 2022-11-27 05:20:22 -04:00
Bruce Weirdan
a8e0ff52df
Move mockery to require-dev too 2022-11-26 21:24:13 -04: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
Bruce Weirdan
d1921b1abf
Merge pull request #8771 from weirdan/reenable-platform-check
Fixes https://github.com/vimeo/psalm/issues/7560
2022-11-26 04:09:57 -04:00
Bruce Weirdan
b8ca90c38e
Re-enable platform-check
This makes sure that we output sensible error (not very pretty, but
useful) when required extensions are missing.

Fixes vimeo/psalm#7560
2022-11-26 02:57:49 -04:00
Bruce Weirdan
074136c8ef
Merge pull request #8768 from orklah/composer-deps 2022-11-26 01:59:15 -04:00
Bruce Weirdan
d146411ae4
Merge pull request #8769 from weirdan/move-dev-plugins-to-require-dev 2022-11-26 01:57:03 -04:00
Bruce Weirdan
c3cc9062cb
Merge pull request #8770 from weirdan/upgrade-humbug-box
Fixes https://github.com/vimeo/psalm/issues/7606
Fixes https://github.com/vimeo/psalm/issues/5399
Fixes https://github.com/vimeo/psalm/issues/7314
2022-11-26 00:53:44 -04:00
Bruce Weirdan
5cbe241493
Disable parallel PHAR build
This is an attempt to fix CirleCI issue in this build:
https://app.circleci.com/pipelines/github/weirdan/psalm/666/workflows/33476cb1-d753-4e2d-b067-a5c92808d725/jobs/2457
2022-11-26 00:36:47 -04:00
Bruce Weirdan
ee34d15b4d
SA and CS fixes 2022-11-26 00:18:45 -04:00
Bruce Weirdan
683fe2f4c6
Bake version data into PHAR file
Compatibility between `ocramius/package-versions`,
`composer/package-versions-deprecated`, `composer-runtime-api` and
`humbug/box` (with `humbug/scoper` further complicating things)has been
always a problematic area. So instead of trying to keep up with all the
changes in all of those packages, we will now bake the version data (for
the packages we need) into the PHAR file itself.

Fixes vimeo/psalm#7606
Fixes vimeo/psalm#5399
2022-11-26 00:00:43 -04:00
Bruce Weirdan
369ba0635e
Update humbug/box
It updates humbug/scoper as well, so some changes to scoper
configuration are required.

`PSALM_VERSION` and `PHP_PARSER_VERSION` constants are made unscoped to
prevent various issues.
2022-11-25 23:58:41 -04:00
Bruce Weirdan
1555554d9f
Centralize version data access
Obtaining package version data from within a scoped PHAR file is a
complicated topic, and it's been alternatively broken and fixed multiple
times.

This change moves version data access to a single class, so that we can
fix it there should we need to.

The rest of the code can just rely on PSALM_VERSION constant (which will
be made unscoped in a further commit) or call `VersionUtils` methods.
2022-11-25 23:48:54 -04:00
Bruce Weirdan
3ad90fa0fb
Move mockery plugin to require-dev 2022-11-25 20:15:54 -04:00
orklah
2c5052c509 bump lower dependencies 2022-11-26 00:19:55 +01:00
orklah
45ed177693
Merge pull request #8766 from Chi-teck/regexp-validation
Suppress errors when validation regexps
2022-11-25 20:20:15 +01:00
orklah
b9a532db26
Merge pull request #8754 from orklah/#8041
improve docs and phrasing about NoValue
2022-11-25 20:18:40 +01:00