1
0
mirror of https://github.com/danog/psalm.git synced 2025-01-10 06:58:41 +01:00
Commit Graph

225 Commits

Author SHA1 Message Date
orklah
3e236fc2fe don't report UnusedSuppressions in non project dirs 2021-08-19 18:43:29 +02:00
Barney Laurance
140cf01a91 Trim issue snippet at time of comparison with baseline, not in IssueData constructor 2021-06-27 10:36:33 +01:00
Bruce Weirdan
86050df4d0
Formally deprecate allowCoercionFromStringToClassConst (#5897)
* Mark allowCoercionFromStringToClassConst as deprecated in xml schema

* Emit deprecation warning for `allowCoercionFromStringToClassConst`
2021-06-07 10:46:26 -04:00
Matt Brown
7f8d522912 Make all mixed issues implement MixedIssue 2021-03-20 21:44:04 -04:00
Matt Brown
3046468d1e Add hints for MixedAssignment issues 2021-03-17 01:10:42 -04:00
Bruce Weirdan
97fe86c4e1
Fix BC break introduced in 4.6.3 (#5410)
Fixes vimeo/psalm#5405

Requires new patch release.

This PR reverts changes to the signature of `IssueBuffer::finish()` and
introduces separate method to be used to capture `$_SERVER`
2021-03-16 19:28:18 -04:00
Bruce Weirdan
205fdd197e
Wrap entrypoints into IIFE to protect their variables (#5366)
* Wrap entrypoints into IIFE to protect their variables

Fixes vimeo/psalm#5359

* Add tests for Psalm variable isolation

* Capture environment before registering autoloader
2021-03-11 00:14:22 -05:00
Bruce Weirdan
0489dd1fd8
Use separate exit code to indicate Psalm finding issues (#5087)
* Use separate exit code to indicate Psalm finding issues

This will allow to distinguish successful run that found some issues
from crashes.

* Fix e2e test expectations

* Documented exit statuses
2021-01-24 13:30:35 -05:00
Matt Brown
9fd7a7d885 Only create after analysis event if they exist
Fixes #5008 - this does some git execing, so we don’t want it to always run
2021-01-14 16:44:29 -05:00
orklah
f9fccb2b2d
implement DTO for plugins (#4881)
* implement DTO for plugins

* introduce EventHandler + reintroduce legacy API for plugins
2021-01-06 09:05:53 -05:00
Olivier Doucet
70a130f11e
add CodeClimate output format (#4387)
* add CodeClimate output format

* cosmetic fixes

* add CodeClimate output format

* cosmetic fixes

* phpcs fixes
2020-11-23 15:34:51 -05:00
orklah
ae0486529e
Unused psalm-suppress (#4646) 2020-11-21 17:39:40 -05:00
Matt Brown
6e39c24a17 Don’t exit with 1 when running security analysis in GitHub Actions and generating a file 2020-11-17 22:49:25 -05:00
Lukas Reschke
494ec40777
Add SARIF as report output (#4582)
https://docs.oasis-open.org/sarif/sarif/v2.0/sarif-v2.0.html
2020-11-17 13:23:20 -05:00
Matt Brown
43af3b1a57 Break out TaintedInput issues into a lot of separate ones 2020-11-17 12:44:31 -05:00
Matt Brown
667220408c Fix #4464 - bust cache when Psalm’s version changes, not just composer’s 2020-11-01 09:01:53 -05:00
Pascal Heidmann
37ab91aa25
try creating report folder if not exists (#4353)
Co-authored-by: Pascal Heidmann <heidmann@kigaroo.de>
2020-10-17 09:01:11 -04:00
Matt Brown
bf569d1b07 Treat more issues as fixable cc @orklah 2020-10-15 11:41:09 -04:00
Matt Brown
b08d70f977 Fix #4252 - fix xml generation 2020-10-12 18:39:26 -04:00
orklah
10f2966dcb
return types (#4311)
* return types

* remove willReturn for void methods
2020-10-12 15:02:52 -04:00
Brown
da65a4327f Move taint graph functionality into its own object 2020-09-25 00:37:40 -04:00
Brown
56cddd16bf Rename TaintGraph to ControlFlowGraph because it’s about to do more 2020-09-20 23:59:52 -04:00
Brown
abb9502921 Rename Taint object to TaintGraph 2020-09-20 18:27:02 -04:00
orklah
a9a364e363
Misc improvements (#4216)
* misc changes

* fix CI
2020-09-20 08:55:28 -04:00
orklah
ead107fa9e
More return types (#4173)
* add native return types

* redundant phpdoc
2020-09-12 11:24:05 -04:00
Brown
eda426a594 Improve unique issue solution 2020-09-10 22:54:30 -04:00
Brown
2100dbd8aa Fix #4167 - allow many issues for the same position 2020-09-10 17:41:45 -04:00
orklah
8c7423505a
add native param types (#4137)
* add native param types

* redundant phpdoc

* add more param types and adds "?" to nullable types

* remove redundant phpdoc

* add more param types and remove redundant phpdoc

* add more param types and remove redundant phpdoc
2020-09-06 19:36:47 -04:00
orklah
f66d57f19d
add native return types (#4116)
* add native return types

* remove redundant phpdoc
2020-09-04 16:26:33 -04:00
the-toster
e296abbabf
Add option to show link to source in console output (#4085)
* add option to change console output for PhpStorm suitable format, so filenames become links, closes #3271

* fix code style

* rename option to php-storm-format

* replace flag with new report format

* fix code style
2020-09-04 16:24:14 -04:00
Brown
6919e88423 Add performance logging under a --debug-performance flag 2020-07-30 15:30:19 -04:00
Brown
ae7c5b095b Fix #3712 - allow taints to be suppressed with @psalm-suppress 2020-07-01 23:23:45 -04:00
Brown
cceacde01d Hide fixable issues when running with taint analysis
Fixes #3722
2020-07-01 08:55:58 -04:00
Brown
17558a5c0e Fix #3676 - add multiline output for TaintedInput issues 2020-06-30 13:17:51 -04:00
Tyson Andre
bee10a2eb4
Add a --debug-emitted-issues flag (#3637)
And support --debug-by-line in psalter and psalm-refactor.
Those were previously not supported in getopt()

Fixes #3634
2020-06-22 18:16:47 -04:00
still-dreaming-1
700b5dda02
Fix #3461 by removing file from issues after removing last issue (#3462) 2020-05-26 22:52:36 -04:00
Brown
4bfdda597e Always render ouptut even if no issues found
Fixes #3292
2020-05-03 08:44:14 -04:00
Brown
370ffa28e4 Fix #3117 - invalidate all caches when composer lockfile changes 2020-04-12 11:41:37 -04:00
Brown
001f064bd4 Don’t modify contents of IssueBuffer in baseline before caching 2020-03-31 23:38:58 -04:00
Matthew Brown
68c95c622a Save information about last runs whether or not there were errors 2020-03-26 00:46:39 -04:00
Matthew Brown
ced092874a Make config generation smarter 2020-02-17 22:05:58 -05:00
Matthew Brown
196a0a5c4e Replace issue data array with object 2020-02-16 18:24:40 -05:00
Matthew Brown
4de6f5c4ec Fix #2442 - using asserting after a MixedAssignment removes that error 2020-02-08 23:01:45 -05:00
Matthew Brown
c2f1b3b700 Use slightly cleaner way of sorting file issues 2020-01-29 09:00:13 -05:00
Philip Hofstetter
8f8672dd6b
do not corrupt internal state when a baseline is present (#2710)
this fixes #2709
2020-01-29 08:53:58 -05:00
Matthew Brown
fa65ab8168 Add support for Github Actions output
Fixes #2678
2020-01-23 07:14:48 -05:00
Matthew Brown
947765c1c6 Improve count checks slightly 2020-01-22 07:51:24 -05:00
Ben Davies
5139d61171 remove unnecessary loops (#2671) 2020-01-22 07:42:00 -05:00
Matthew Brown
8202af957d Index issues by file to reduce some lookups 2020-01-21 21:07:44 -05:00
Pavel Batečko
87debfe954 Support suppressing all issues with @psalm-suppress all (#2584)
* Support suppressing all issues using @psalm-suppress all

* Document @psalm-suppress all
2020-01-12 10:38:32 -05:00
Matthew Brown
2f2cd85a6a Identify invalid static property array assignment 2019-12-27 10:34:51 -05:00
Matthew Brown
d7b99148be Add support for JUnit report type
Fixes #2485
2019-12-19 20:18:09 +00:00
Tyson Andre
4548fb87f7 Add space for 'can automatically fix Nissues' (#2416) 2019-12-04 16:16:37 -05:00
Brown
821f3528d2 Fix #701 - indicate issues fixable with Psalter 2019-12-02 15:24:01 -05:00
Brown
a05f4744cb Only show taint issues when tracking tainted input 2019-10-09 14:26:32 -04:00
Matthew Brown
9ad6c36d9b
Conditionally verify that array offsets exist (#2147)
* Check array offsets idea

* Clean up some issues

* Add a few light fixes

* Add docs
2019-09-18 14:21:06 -04:00
Brown
a0f7e73aea Fix #2127 - improve behaviour of suppression discovery in threaded mode 2019-09-16 11:58:42 -04:00
Matthew Brown
5d94e340ee Remove unused suppressions in tests 2019-08-18 15:34:32 -04:00
Matthew Brown
2a5e0d8f39 Fix #1444 - track unused suppressions 2019-08-18 14:27:50 -04:00
Matthew Brown
2146f73782 Prepare for tracking unused suppressions
Ref #1444
2019-08-18 12:25:48 -04:00
Matthew Brown
da42be175f Apply PHPCS fixes
Fixes #1880
2019-07-05 16:27:53 -04:00
LeSuisse
f29826b958 Fully qualify constants and function calls (#1849)
This should give a small performance boost.
Part of #1837.

The change is enforced via phpcs and can be autofixed
with phpcbf.
2019-06-26 16:52:29 -04:00
Matthew Lewinski
ac0a9d1514 Add a 'sonarqube' report type (#1808)
This JSON report is suitable for import into either SonarCloud or
SonarQube as Generic Issue Data (also known as an External Issue
Report).

https://docs.sonarqube.org/latest/analysis/generic-issue/
2019-06-17 21:17:09 -04:00
Matthew Brown
7fc11af49e Fix docblocks with @andrew-demb’s suggestions 2019-06-16 09:12:32 -04:00
Matthew Brown
b5cbc84351 Fix #1617 - add option to only show errors in reports 2019-06-09 12:37:28 -04:00
Matthew Brown
fd3235d785 Reduce duplicate trait messages 2019-05-27 10:10:21 -04:00
Brown
0bd4dbcbc4 Bump to PHP 7.1
Fixes #1650
2019-05-16 18:36:36 -04:00
Brown
feff357a75 Be smarter about discovering files 2019-05-10 18:07:13 -04:00
Brown
111abf82da Fix #1616 - allow Psalm to output checkstyle format 2019-05-08 14:26:52 -04:00
Brown
dd40987187 Consolidate location of issue handling 2019-05-03 17:12:20 -04:00
Brown
b9bece4cbc Allow MixedArrayTypeCoercion to be properly suppressed by default 2019-04-29 12:19:51 -04:00
Brown
0e4c8ce482 Split apart TypeCoercion issues, allowing more granular issue filtering 2019-04-25 18:02:19 -04:00
Brown
80e28d6a4a Add support for unused method & property automated removal 2019-04-17 11:12:18 -04:00
Brown
af4d10cb63 Fix #1499 - use TraitMethodSignatureMismatch when dealing with trait methods 2019-03-29 14:09:06 -04:00
Matthew Brown
9d4ebe6b6b Add plugin hook for post-analysis stuff 2019-03-23 12:47:46 -04:00
Matthew Brown
ee56419fd6 Improve accuracy and durability of mixed counts 2019-03-23 09:50:47 -04:00
Brown
bd372e93af Add config flags for findUnusedVariables and findUnusedCode 2019-03-05 15:45:09 -05:00
Brown
07825c9ff8 Fix long line 2019-02-27 16:16:19 -05:00
Brown
601f303de2 Fix position of invalid param 2019-02-27 16:00:44 -05:00
Matthew Brown
cdae79b9fe Fix unnecessary params in Psalm codebase 2019-02-23 11:31:33 -05:00
Bruce Weirdan
8408effe57 Dropped unused uses 2019-02-17 13:17:45 -05:00
Brown
9f1dc425d0 Reduce repetition in the baseline files 2019-02-13 15:10:50 -05:00
Brown
3deea3980d Add checks for unitialized properties
Fixes #1328
2019-02-13 13:32:19 -05:00
Matthew Brown
62fb8035bf Fix #1309 - no PropertyNotSetInConstructor warnings for grandchild of class 2019-02-10 15:01:10 -05:00
Matthew Brown
b8b1106d79 Fix #1265 - allow referencedClass/Property/Method to be warnings 2019-02-01 07:58:40 -05:00
Matthew Brown
bd9f2ec546 Add separate issue type for undefined interface method 2019-01-13 13:07:53 -05:00
Matthew Brown
27687244f0 Normalise baseline file slashes
Fixes #1192
2019-01-10 00:10:16 -05:00
Brown
2d22db4cb7 Clear up use of reloadFiles 2019-01-02 12:10:52 -05:00
Brown
1d300ec342 Fix #1150 2019-01-02 11:18:22 -05:00
Dave Liddament
0655e1c19c UPDATE add issue type to text output
Adds issue type to text output. Leaves .emacs output as before.
2018-12-18 17:25:28 -05:00
Jon Ursenbach
c6a8b53a4d Refactoring output formats and creating a new "compact" format.
The new compact format generates your report within a table
structure that is similar to PHPCS.

Resolves #967
2018-12-09 17:34:47 -05:00
Matthew Brown
9709263b8d Make many PropertyAnalyzer properties private 2018-11-12 11:20:59 -05:00
Matthew Brown
4d79b61e93 Change _checker to _analyzer 2018-11-12 11:20:59 -05:00
Matthew Brown
4688b25fd9 Move internal classes to own namespace 2018-11-12 11:20:59 -05:00
Brown
ecf9d8afd7 Fix calculation when sample has a newline 2018-11-09 11:38:40 -05:00
Matthew Brown
f2f8edef20 Fix #1062 - improve handling of baseline messaging 2018-11-09 00:47:43 -05:00
Brown
f017599b3f Fix how InvalidDocblock is treated
Fixes #1051 (hopefully)
2018-11-01 17:03:08 -04:00
Brown
0ba8a51cbe Deduplicate issues from threads 2018-11-01 13:22:38 -04:00
Erik Booij
635410ea41 Introduce issue baseline with --set-baseline and --with-baseline 2018-11-01 11:16:08 -04:00
Brown
54fdda651b Add server mode support with error reporting only 2018-10-17 15:54:31 -04:00