1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-13 17:57:37 +01:00
Commit Graph

6946 Commits

Author SHA1 Message Date
Barney Laurance
0722401aaf Trim code snippets on both sides when comparing current issues against baseline
Should fix issue #5979

We could also trim code issues when writing to baseline, but I think
that's a minor BC break, so probably shouldn't happen until Psalm 9.
2021-06-26 22:37:29 +01:00
Matt Brown
19cc4cb4ee Simplify lots of usage checks 2021-06-25 10:14:49 -04:00
Matt Brown
67d68a5dc0 Use more accurate variable name 2021-06-25 09:54:39 -04:00
Bruce Weirdan
6d4262edbd
Mark return values in as throw argument as used (#5989)
Fixes vimeo/psalm#5975
2021-06-25 09:11:27 -04:00
Abdul Malik Ikhsan
3376f3cdfa
Add ob_get_clean to impure function 2021-06-24 20:34:38 +07:00
Oliver Hader
38d3b15f8d
[BUGFIX] Specialize TaintSink in IncludeAnalyzer (#5986)
* [TEST] Assert more details in TaintTest

* [TEST] Add test for multiple tainted includes

* [BUGFIX] Specialize TaintSink in IncludeAnalyzer

Fixes: #5986
2021-06-23 08:27:03 -04:00
Oliver Hader
b07de1fefd
[BUGFIX] Avoid crash during interface checks on non-existing classes (#5984)
`ClassLikes::classImplements(NonExisting::class, WellKnown::class)`
now returns `false` instead of throwing an exception for non-existing
classes.

Fixes: #5983
2021-06-22 18:04:47 -04:00
Bruce Weirdan
260faee29e
Mark set_include_path() as impure 2021-06-22 22:00:05 +03:00
Matt Brown
d8f4eb2d6d Restrict type of implode to prevent Array-to-string conversion; 2021-06-21 19:55:27 -04:00
Bruce Weirdan
52d2692497
Don't attempt to read baseline before it was generated (#5961)
Fixes vimeo/psalm#5960
2021-06-20 21:59:54 -04:00
Matt Brown
f73f2299db Fix #5960 - catch exception when baseline cannot be located 2021-06-20 19:03:20 -04:00
Bruce Weirdan
0a57c86549
Announce removal of deprecated methods (#5956)
Refs vimeo/psalm#4700
2021-06-20 14:12:20 -04:00
orklah
3c9476bdf6
Prevent infinite loop in case a TClassConstant is expanded to itself (#5951) 2021-06-18 08:51:19 -04:00
orklah
79478a60b1
Allow class constant as offset key (#5943)
* allow class-constant as an array offset when the type match

* remove object with __toString as a possible offset as it's not valid
2021-06-17 18:15:57 -04:00
orklah
872f1c232c
allow Psalter to fix RedundantCast (#5948)
* allow Psalter to fix RedundantCast

* fix test
2021-06-17 18:15:45 -04:00
Matthew Brown
c2f7422e80
Prevent crash with non-UTF-8 string
Fixes #5945
2021-06-17 12:26:18 -04:00
Bruce Weirdan
e552925af6
Emit separate type of issue when foreach value is unused (#5932)
* Emit separate type of issue when foreach value is unused

Fixes vimeo/psalm#5929

* Fixed var name case sensitivity
2021-06-17 00:40:24 -04:00
orklah
cfa5492286
Remove redundant namespaced phpdoc (#5936)
* remove array-key from generated phpdoc

* remove mixed value too

* fix tests

* fix mixed suppression

* revert back to array to prevent breaking refactoring
2021-06-16 11:16:20 -04:00
Matt Brown
9dde8eed9d Add support for literal-int annotations as well 2021-06-14 23:24:09 -04:00
Matt Brown
c3fdfc5795 Support literal ints in encapsed strings 2021-06-14 16:30:45 -04:00
Matt Brown
4941b9e5d2 Rename class and make it type-hintable 2021-06-14 16:02:59 -04:00
Matt Brown
5ae8b2a23f Add preliminary support for literal-string 2021-06-14 15:30:25 -04:00
Bruce Weirdan
24d45a50de
Merge pull request #5924 from BafS/fix-type-error-patch-1 2021-06-13 21:19:43 +03:00
BafS
d395e00f18
Add assertion 2021-06-13 12:07:34 +02:00
Matt Brown
aade5d0def Add slash 2021-06-12 17:17:27 -04:00
Matt Brown
b678461f5c Improve detection of fluent methods 2021-06-12 17:09:42 -04:00
Matt Brown
23b7ff86b7 Mark interface methods as unused even when inherited 2021-06-12 16:13:29 -04:00
BafS
eb4ecc20d4
Fix style 2021-06-11 20:11:21 +02:00
BafS
07cf6012f7
Use assert() instead of phpdoc 2021-06-11 20:07:59 +02:00
BafS
dde0f1fb06
Fix Uncaught TypeError with some shifts 2021-06-11 20:03:23 +02:00
Matt Brown
884043b47b Fix style 2021-06-10 18:29:08 -04:00
Matt Brown
f2f5f1eaa2 Revert fix and tests 2021-06-10 17:44:34 -04:00
Matt Brown
47bf5ed567 Fix #5918 - add new issue to detect unquoted strings 2021-06-10 17:43:04 -04:00
Matt Brown
e661c5fb55 Fix erroneous use when comparing methods 2021-06-10 14:39:01 -04:00
Matthew Brown
6d09418a23
Detect unused return values (#5917)
* Detect unused return values

* Allow static-returning instance methods (presumed to be fluent)

* Make $is_used the default for Codebase::methodExists
2021-06-10 14:18:15 -04:00
Matt Brown
542fa77896 Remove unused use 2021-06-10 12:59:37 -04:00
Matt Brown
34c1f9dccf Nest conditional for more accurate flow 2021-06-10 12:52:23 -04:00
Matt Brown
a6d79fd409 Clean up more unused return values 2021-06-10 12:23:53 -04:00
Matt Brown
8509999f3f Remove some unused return values 2021-06-10 12:09:46 -04:00
Matthew Brown
e5a7478b38 Fix order 2021-06-10 09:07:15 -04:00
Matt Brown
f5bc841295 Prevent nested literal coercion 2021-06-09 16:01:45 -04:00
Matthew Brown
d12cf88e83 Add back supported for templated index assignment 2021-06-09 12:55:37 -04:00
Matthew Brown
0a7d254689 Fix #5911 - improve non-terminating switch type inference 2021-06-09 09:06:23 -04:00
Bruce Weirdan
6abce3525a
Enforce use sort (#5900) 2021-06-07 22:55:21 -04:00
Bruce Weirdan
5bfb841072
Prevent crashes when class constant references missing class (#5902)
Fixes vimeo/psalm#5861
2021-06-07 13:20:07 -04:00
Matthew Brown
7301e3a35f Fix redundant cast 2021-06-07 13:19:00 -04:00
Bruce Weirdan
80e8d40013
Deprecate legacy hook interfaces (#5898)
Refs vimeo/psalm#4700
2021-06-07 10:46:56 -04: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
Bruce Weirdan
a5080f2cf6
Do not provide mixed return type on unrelated methods (#5895)
Fixes vimeo/psalm#5894
2021-06-07 10:45:43 -04:00
Andrey Klimenko
3ad3375777
Fix generic destruction in assertion (#5888) 2021-06-04 15:33:37 -04:00