AndrolGenhald
b68c6116d8
Use PHP 8.1 when testing AmbiguousConstantInheritance.
2022-01-25 15:49:09 -06:00
AndrolGenhald
0b81f46bb1
Fixes after rebasing.
2022-01-25 15:31:09 -06:00
AndrolGenhald
0edf260d8b
Improve class constant static analysis.
...
Add class const covariance support (fixes #5589 ).
Add check for overriding const from interface in PHP < 8.1 (fixes #7108 ).
Add check for ambiguous const inheritance.
2022-01-25 15:20:17 -06:00
orklah
7c8441baec
Merge pull request #7123 from AndrolGenhald/feature/942-type-annotate-class-constants
...
Support type annotations for class consts (fixes #942 ).
2022-01-25 20:54:40 +01:00
Bruce Weirdan
3a6dc9b458
Merge pull request #7431 from zoonru/disable_suppress_all
2022-01-24 11:25:32 +02:00
orklah
63b802bff4
remove TPositiveInt
2022-01-23 23:49:23 +01:00
AndrolGenhald
7d256975e4
Fix cs/psalm errors after rebase.
2022-01-22 17:06:54 -06:00
AndrolGenhald
558208e44e
Add type checking for class const assignments, fix several other const issues.
2022-01-22 17:06:54 -06:00
AndrolGenhald
c18a155f77
Support type annotations for class consts ( fixes #942 ).
2022-01-22 17:06:53 -06:00
orklah
af1888b631
Merge remote-tracking branch 'upstream/4.x' into upstream-master4
2022-01-22 17:48:42 +01:00
m1ke
6107148fce
Alter order of precedence and upated docs to match
2022-01-20 15:24:21 +00:00
m1ke
06aafa78ad
Wording for threads config doc
2022-01-20 10:22:22 +00:00
m1ke
df48eabbd2
Add new config item to docs
2022-01-20 09:50:12 +00:00
orklah
5a6dccd4a9
Merge pull request #7420 from orklah/remove-old-things
...
Remove forbidEcho
2022-01-19 20:32:19 +01:00
orklah
4e5711030d
Merge pull request #7429 from ricardoboss/update-baseline-docs
...
Added documentation for baseline files
2022-01-19 20:02:08 +01:00
Ricardo Boss
ae954f0cdc
Update dealing_with_code_issues.md
2022-01-19 13:34:51 +01:00
Ricardo Boss
bd1385df72
Added context for updating the baseline files
2022-01-19 13:32:47 +01:00
4cfe1a0773
Add configuration option to disable @psalm-suppress all
2022-01-19 13:24:26 +01:00
ef4dd656d0
Update
2022-01-19 12:29:49 +01:00
9021b13b65
Update
2022-01-19 12:29:44 +01:00
d970661182
Add separate issue
2022-01-19 12:20:50 +01:00
Ricardo Boss
1c3d15f5df
Added documentation for baseline files
2022-01-19 12:07:20 +01:00
orklah
dceaa117cf
remove forbidEcho
2022-01-18 18:25:18 +01:00
orklah
5f749c8a33
remove forbidEcho
2022-01-18 18:14:39 +01:00
orklah
b633619a2c
Merge remote-tracking branch 'upstream/4.x' into upstream-master
2022-01-14 21:01:25 +01:00
orklah
d786e9deef
deprecate attribute forbidEcho
2022-01-14 19:31:03 +01:00
AndrolGenhald
6d385fd8f0
Fix documentation for ComplexMethod/ComplexFunction.
...
Looks like I misunderstood them.
2022-01-12 14:37:52 -06:00
AndrolGenhald
240032568c
Add test for issues.md to ensure all documented issues are listed.
2022-01-12 14:29:23 -06:00
d6ca1d727e
Fix typo in documentation filename
2022-01-11 14:18:04 +01:00
a35ccfb0cb
Revert misguided changes
2022-01-10 10:19:12 +01:00
4445612ebb
Improve docs
2022-01-10 10:11:28 +01:00
b530f23acc
PHP 8.2: seal all properties by default, add configuration key for lower versions
2022-01-10 10:11:28 +01:00
Bruce Weirdan
afa6497051
Dropped THtmlEscapedString
2022-01-03 22:48:59 +02:00
Bruce Weirdan
ab60d311c2
Merge pull request #7188 from vimeo/muglug-use-invalidscalarargument-less
2022-01-03 06:04:42 +02:00
Bruce Weirdan
f19e4cedc1
Merge pull request #6705 from orklah/phpstorm-generics-removal
2022-01-03 06:03:36 +02:00
Matthew Brown
83911c7408
Remove unnecessary references to empty in TypeCombiner
2022-01-03 04:10:41 +02:00
orklah
0747b48d06
remove TEmpty
2022-01-03 04:09:59 +02:00
orklah
4f7c1d05c1
remove support for allowPhpstormGenerics
2022-01-02 15:06:04 +02:00
Matthew Brown
ae0063051a
Add better documentation
2022-01-02 14:56:18 +02:00
edc797d1c2
Add docs
2021-12-30 11:56:16 +01:00
Philip Hofstetter
fdeb1954c2
update docs for enum case deprecation
2021-12-22 06:16:42 +01:00
Kamil Tekiela
01d64e606c
Removed misleading parentheses after language construct
2021-12-18 15:20:58 +00:00
Bruce Weirdan
85f2083acb
Flag duplicate constants
...
Fixes vimeo/psalm#6882
Addresses p1 from vimeo/psalm#6471
2021-11-11 00:44:17 +02:00
Bruce Weirdan
0f8ef45110
Forbid properties on enums
...
Fixes vimeo/psalm#6472
2021-11-06 21:57:49 +02:00
Bruce Weirdan
acad03779b
Update docs/running_psalm/configuration.md
2021-10-20 16:17:54 +03:00
orklah
05f63ef16a
wording
2021-10-20 07:06:44 +02:00
orklah
3db477e3c5
deprecate allowPhpStormGenerics
2021-10-19 23:37:35 +02:00
orklah
0e83afdb86
Merge pull request #6518 from orklah/fix-truthy
...
improvements of alwaysTruthy/alwaysFalsy
2021-10-04 13:29:49 +02:00
orklah
8b07e69645
Merge pull request #6514 from zoonru/if-this-is
...
Add if-this-is
2021-10-04 09:49:26 +02:00
orklah
28edc25f65
fix doc
2021-10-02 10:01:05 +02:00
741c9ee471
Fixes
2021-09-22 10:26:21 +02:00
Scott Vanderbeek
a5af5bde23
Update language_server.md
2021-09-21 08:15:06 -07:00
7e0b489efe
Merge remote-tracking branch 'origin/master' into if-this-is
2021-09-21 12:12:15 +02:00
Scott Vanderbeek
866fa5ef36
Update to Phpstorm support
...
I've added clarifying information that Phpstorm supports psalm out of the box since 2020.3 release, and removed the LSP information.
2021-09-20 15:35:53 -07:00
KM
ae4282ad5c
SublimeText configuration
...
I have updated SublimeText configuration values for easier integration.
2021-09-08 18:28:52 +05:30
Bruce Weirdan
b4f024b1fe
Basic enum checks
...
* Duplicate cases
* Duplicate case values
* Invalid case values: value on a pure enum case, missing value on a
backed enum case, backing type / case type mismatch
* Literal expression evaluation for case values
Fixes vimeo/psalm#6426
Fixes vimeo/psalm#6427
2021-09-07 12:35:38 +03:00
Bruce Weirdan
7b11024886
Flag invalid backing types for enums
...
Fixes vimeo/psalm#6428
2021-09-05 20:12:24 +03:00
Tyson Andre
0ae573a158
[skip ci] Fix typos in docs/
2021-08-05 16:39:14 -04:00
orklah
b8fd6b6f8a
add documentation
2021-07-22 23:36:39 +02:00
Grégoire Paris
26f8e5b333
Add negated identity with false case
...
This is the opposite of === true and works the same.
2021-07-17 03:20:23 +03:00
Danny Kirkham
fb1dd4c4b4
Update Sublime LSP to match latest version
...
I noticed the current config didn't work on the Sublime Text LSP plugin, I've updated it to the latest version of the config for the plugin
2021-07-04 21:46:15 +01:00
Antonio Mangiacapra
3bc519512c
Fix typo in ConfigIssue.md
...
"future versions" instead of "feature versions"
2021-07-02 11:59:26 +02:00
Bruce Weirdan
f24f361a95
Add documentation and schema entry for inferPropertyTypesFromConstructor
...
Fixes vimeo/psalm#5974
2021-06-22 21:20:10 +03:00
Matthew Brown
fc88f4f0ee
Simplify UnusedForeachValue example
2021-06-21 13:57:53 -04:00
orklah
df42172f8e
update documentation about authoring plugins ( #5958 )
2021-06-20 14:12:07 -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
yoshifp
cf6a4e70c5
Add login required to see 'Use this template' button ( #5919 )
2021-06-10 22:18:47 -04:00
Matthew Brown
d4164d4452
Revert "Add better example"
...
This reverts commit bfd2ab07de
.
2021-06-10 22:18:18 -04:00
Matthew Brown
bfd2ab07de
Add better example
2021-06-10 18:32:38 -04:00
Matthew Brown
eb3e395138
Update TaintedTextWithQuotes.md
2021-06-10 17:55:07 -04:00
Matt Brown
47bf5ed567
Fix #5918 - add new issue to detect unquoted strings
2021-06-10 17:43:04 -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
5c1d8489da
Improve test cases
2021-06-10 12:57:13 -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
Oliver Hader
e457a7d5af
[FEATURE] Allow plugins to declare their custom scanner or analyzer ( #5883 )
...
* [FEATURE] Allow plugins to declare their custom scanner or analyzer
Related: #5882
* [TEST] Check plugin declaring own scanner/analyzer
* [TASK] Document plugins declaring scanner or analyzer
* [TEST] Clean up code
* [!!!][TASK] Extend Psalm\Plugin\RegistrationInterface
* add method `addFileTypeScanner(string $fileExtension, string $className): void`
* add method `addFileTypeAnalyzer(string $fileExtension, string $className): void`
* [TASK] Ignore IntelliJ/PhpStorm workspace folder in VCS
* [TASK] Remove superfluous class import
2021-06-04 15:32:53 -04:00
Bruce Weirdan
c98b20247b
Flag unexpected tags on function docblocks ( #5845 )
...
* Flag unexpected tags on function docblocks
Fixes vimeo/psalm#5782
* Document new issue
* Fix spacing
Co-authored-by: Matthew Brown <github@muglug.com>
2021-05-28 09:47:39 -04:00
yoshifp
110c9ef4e1
Fix typo in configuration.md ( #5805 )
2021-05-20 10:58:17 -04:00
Vincent Langlet
587b144f0e
Check for ParamName even for method with only one param ( #5732 )
...
* Check for ParamName even for method with only one param
* Fix tests
2021-05-08 19:33:48 -04:00
orklah
0d524ecd5b
adding documentation about @no-named-arguments and allowNamedArgumentCalls ( #5654 )
2021-04-21 01:02:25 -04:00
Matt Brown
012dafad79
Fix #5383 - prevent unsound use of new static for generics
2021-04-10 13:16:19 -04:00
AndrolGenhald
3ce41d71a4
Clean up issues list, add documentation to help with named variadic confusion. ( #5511 )
...
* Clean up issues list, add documentation to help with named variadic confusion.
* Add ComplexFunction and ComplexMethod back to issues list.
I removed them because the documentation files don't exist, but they're used and the documentation just needs to be added.
2021-03-29 15:10:49 -04:00
AndrolGenhald
de5a031088
Improve @no-named-arguments support and variadics. ( #5455 )
...
* Improve @no-named-arguments support and variadics.
Handling of argument unpacking and variadics still needs a pretty big makeover, but this is a good start.
Fixes #5420
Improves #5453 (iterable works, array still causes issues)
* Remove unneeded imports.
2021-03-22 19:58:22 -04:00
Markus Staab
5747f1df14
docs: mention default level ( #5340 )
...
* docs: mention default level
* Update error_levels.md
2021-03-11 00:06:02 -05:00
Tobias Nyholm
ed6fdaaca9
[Doc] Show how to install the phar by direct download ( #5274 )
2021-02-24 16:22:40 -05:00
Matt Brown
4d76f7545c
Allow property type invariance on templated properties
...
This is a bit of a hack – the comparison should be similar to the ones done in MethodComparator, but this avoids false-positives for now
2021-02-07 01:45:48 -05:00
Matt Brown
f2d202e2bb
Add less severe issue for docblock property type invariance cc @bdsl
...
This is less likely to break everything
2021-02-07 00:52:29 -05:00
Bruce Weirdan
04bb2b1182
Prevent invalid Traversable implementation ( #5171 )
...
* Prevent invalid Traversable implementation
Fixes vimeo/psalm#5167
* Document new issue
* CS fix
2021-02-06 22:10:05 -05:00
Oliver Hader
56b7cb2423
[TASK] Update documentation ( #5163 )
...
* [TASK] Fix code highlighting in documentation
* [TASK] Document stubs.file.preloadClasses configuration
2021-02-06 22:04:44 -05:00
Barney Laurance
0cd5442c47
Enforce property type invariance ( #5131 )
...
* Implement NonInvariantChildProperty detection
See https://github.com/vimeo/psalm/issues/4184
* Delete test cases with 'parentSetsWiderTypeInConstructor'
As I understand it these are not valid test cases. They
emit NonInvariantPropertyType issues which seems correct - the property
type variation is I think a latent bug in the sample code.
* Reduce shortcode for NonInvariantPropertyType to 1+max used shortcode on master
2021-01-31 11:32:24 -05:00
Franz Zieris
e2e7efb949
Update installation.md ( #5130 )
...
Make sure URL is rendered as a link
2021-01-30 20:28:41 -05:00
yaegassy
7ce5b7ec13
docs: Update config of vim-lsp in language_server.md ( #5117 )
2021-01-27 20:46:56 -05:00
Oliver Hader
546283b71a
Update documentation for taints and global configuration ( #5098 )
...
* [DOCS] Extend documentation on global variables configuration
* [DOCS] Synchronize meaning of @psalm-taint-source input with source code
* [DOCS] Add documentation for conditional @psalm-taint-escape
* [DOCS] Add documentation for @psalm-taint-unescape
2021-01-25 11:04:00 -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
Matthew Brown
e1c8050850
Update language_server.md
2021-01-07 08:48:33 -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
Matthew Brown
7764a4ce6c
Fix #4912 - detect mismatching property type
2020-12-29 16:37:03 +00:00
orklah
ab5ddb1514
[Doc] Add an example to explain how to handle plugin issues ( #4908 )
2020-12-29 11:43:07 +00:00
Matt Brown
e7f9ce6da0
Break out RedundantCast issues
2020-12-01 17:25:45 -05:00
Matt Brown
62493d5ac3
Update master issue list
2020-11-29 23:23:10 -05:00
Matt Brown
73c6f0156a
Add to error_levels.md
2020-11-29 23:21:09 -05:00
orklah
b60c42adca
improve Atomic Types documentation ( #4735 )
...
* improve Atomic Types documentation
* add doc
* add doc
2020-11-29 21:41:36 -05:00
Matthew Brown
60ac109c01
Add RedundantPropertyInitializationCheck ( #4732 )
...
* Add RedundantPropertyInitializationCheck
* add documentation for RedundantPropertyInitializationCheck (#4734 )
Co-authored-by: orklah <orklah@users.noreply.github.com>
2020-11-29 11:57:20 -05:00
orklah
e2030b4a1e
fix #3282 ( #4724 )
2020-11-28 09:03:03 -05:00
Matthew Brown
9823824608
Add example from @ludofleury's solution
2020-11-23 17:25:30 -05:00
Lukas Reschke
a36c1af846
Add more verbose description for TaintedHtml ( #4668 )
...
Ref https://github.com/vimeo/psalm/issues/4590
2020-11-22 19:14:48 -05:00
Matt Brown
2c77424e16
Fix #4656 - separate UnusedConstructor from UnusedMethod
2020-11-22 11:48:17 -05:00
Matt Brown
78d644d1a1
Change TaintedText to TaintedCallable
2020-11-19 19:01:19 -05:00
Lukas Reschke
78f4a0691c
Add dedicated types for 'file', 'header' and 'cookie' ( #4630 )
...
* [WIP] Add dedicated sinks for 'file', 'header' and 'cookie'
* Add documentation
* Add mapping for taint flows
* Add tests
* Fix test
2020-11-19 17:47:29 -05:00
Mikhail Snetkov
20c78ae29b
Fix missing bracket in docs ( #4614 )
2020-11-19 08:43:39 -05:00
Lukas Reschke
ddbfbb28e6
Split LDAP into custom category ( #4604 )
...
- Adds ldap_escape as sanitizer
- Defines the right parameters to ldap_search as sink
- Wrote documentation
- Added tests
2020-11-18 11:39:36 -05:00
Lukas Reschke
5ba4681c17
Add SSRF sinks ( #4592 )
2020-11-18 00:52:48 -05:00
Matt Brown
74749d20cc
Improve documentation for taints a little
...
Ref #4590
2020-11-17 16:03:50 -05:00
Matt Brown
43af3b1a57
Break out TaintedInput issues into a lot of separate ones
2020-11-17 12:44:31 -05:00
Lukas Reschke
5df2b771aa
Fix typo ( #4555 )
2020-11-15 20:28:51 -05:00
Matthew Brown
43f6921efa
Update MixedOperand.md
2020-11-08 14:41:08 -05:00
Matt Brown
579327a470
Detect when targets are incorrectly targeted
2020-10-30 13:28:45 -04:00
Matt Brown
a3755a1d1f
Fix tests
2020-10-27 22:29:49 -04:00
Matthew Brown
42c9f017f9
Experiment with PHP 7.1 compatibility ( #4421 )
...
* Experiment with PHP 7.1 compatibility
* Let’s hop
2020-10-26 15:14:48 -04:00
Matt Brown
40dddc5e3f
Add docs
2020-10-24 00:14:27 -04:00
Niclas van Eyk
0261024aa6
Initial proposal for psalm-require-{extends, implements} ( #4361 )
...
* initial implementation of psalm-require-extends
* Added @psalm-require-implements
* Added shortcode for ExtensionRequirementViolation
* Docs & cofig entries for @pasalm-require-{implements,extends}
* Added requirement violations to issues.md
2020-10-19 15:08:18 -04:00
Matthew Brown
9135f8e865
4.x ( #4363 )
...
* Enable --diff mode by default
* Bump required version
2020-10-18 23:28:05 -04:00
Marco Perone
ece18cd9b5
provide documentation for ensureArrayIntOffsetsExist configuration option ( #4328 )
2020-10-14 19:59:28 -04:00
feek
8d2db4e673
feature: universal object crates ( #3948 )
...
* feature: universal object crates
* docs: document universal object crate config option
Co-authored-by: Matthew Brown <github@muglug.com>
2020-10-07 09:56:21 -04:00
Matt Brown
3d9676c45e
Update docs to match 4.x config flags
2020-10-05 10:11:46 -04:00
Matthew Brown
36374a19ed
Add vendor/bin
2020-10-03 10:30:05 -04:00
Matthew Brown
8ed34442d0
Update the managing section
...
cc @weirdan
2020-10-03 10:28:58 -04:00
Matthew Brown
fcc3df12de
Update the discovering plugins docs
2020-10-03 10:23:55 -04:00
Matthew Brown
4eb37fcb0b
Improve language
2020-10-03 01:45:58 -04:00
Matthew Brown
79c30c4a1a
Fix casing
2020-10-03 01:05:02 -04:00
Matt Brown
1839b3e701
Fix test
2020-10-02 21:01:55 -04:00
Matt Brown
30795281c6
Add config and docs for InvalidNamedArgument
2020-10-02 20:35:23 -04:00
Simon Podlipsky
f55e5ea9bb
Mention $XDG_CACHE_HOME in cache docs ( #4268 )
2020-10-02 15:08:47 -04:00
Matthew Brown
13fd6c5a9d
Add slightly better language
2020-10-02 15:07:55 -04:00
Bruno Ribarić
c23406fe36
Fix typo ( #4261 )
...
* Fix typo
* Remove word
Co-authored-by: Matthew Brown <github@muglug.com>
2020-09-30 17:48:49 -04:00
Claas Augner
3f8c91a64e
fix(docs): add missing issues to error levels ( #4171 )
2020-09-12 11:25:41 -04:00
Lexidor Digital
43d91665c6
[easy fix] Update example for @no-named-arguments ( #4170 )
...
The text mentions `@no-named-arguments`, but the example shows `@no-named-params`.
`@no-named-params` can not be found in the psalm source.
Updated example to `@no-named-arguments`.
[https://github.com/vimeo/psalm/search?q=no-named-params&unscoped_q=no-named-params ](search for no-named-params) 1 result (this example)
[https://github.com/vimeo/psalm/search?q=no-named-arguments&unscoped_q=no-named-arguments ](search for no-named-arguments) 2 results (this example and in CommentAnalyzer.php)
2020-09-11 23:36:10 -04:00
Adrien LUCAS
107f596f24
Document Xdebug usage ( #4164 )
...
* Document Xdebug usage
* Change to non-persistent approache
Co-authored-by: Bruce Weirdan <weirdan@gmail.com>
Co-authored-by: Bruce Weirdan <weirdan@gmail.com>
2020-09-11 23:35:37 -04:00
Brown
6d8641ac09
Fix documentation
2020-09-10 22:58:26 -04:00
Brown
6ffe471525
Make new InvalidLiteralArgument issue for strpos refs
...
Ref #4070
2020-09-10 22:54:32 -04:00
Brown
00ad09816f
Fix tests
2020-09-10 19:05:47 -04:00
Alfred Bez
d9d8d28c2e
Document cacheDirectory behaviour ( #4149 )
2020-09-07 10:53:51 -04:00
orklah
c6ea274180
Config reportInfo to speed up analysis for big projects ( #4095 )
2020-09-01 09:22:05 -04:00
Brown
940459787a
Catch unmatched matches
2020-08-31 22:59:47 -04:00
Alfred Bez
921b8e206c
InvalidClass is also reported if the casing in the namespace is wrong ( #4090 )
2020-08-31 10:05:03 -04:00
Brown
92239add4d
Add some backwards-incompatible changes for 4.x
2020-08-30 11:44:14 -04:00
Brown
10f7031080
Prevent use of $this
in pure functions
2020-08-23 18:37:46 -04:00
Matthew Brown
7e13ab9cc9
Fix docs
2020-08-23 13:03:25 -04:00
Michel Hunziker
3538fe1955
Add configuration attribute to find unused @psalm-suppress ( #4041 )
2020-08-22 10:01:26 -04:00
Olle
3630b4a2f9
Merge remote-tracking branch 'remotes/upstream/master'
2020-08-18 15:59:46 +00:00
Matthew Brown
f48a362fcd
Add reference to automatic fix
2020-08-17 11:58:30 -04:00