1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-14 18:36:58 +01:00
Commit Graph

728 Commits

Author SHA1 Message Date
orklah
05f63ef16a wording 2021-10-20 07:06:44 +02:00
orklah
3db477e3c5 deprecate allowPhpStormGenerics 2021-10-19 23:37:35 +02:00
Bruce Weirdan
f328610142
Update docs/annotating_code/type_syntax/scalar_types.md 2021-10-04 23:45:47 +03:00
sasezaki
f03f362431
Declare html-escaped-string is deprecated on doc 2021-10-04 21:00:54 +09: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
15fccc6a07
Add docs 2021-09-21 17:35:44 +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
d7ef94f98d
[skip-ci] typos 2021-09-08 00:02:02 +03:00
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
a494fc160b
Merge pull request #6436 from orklah/list-doc 2021-09-06 01:01:38 +03:00
orklah
4602e4ae22 change definition of list regarding is_list RFC 2021-09-05 23:03:55 +02:00
Bruce Weirdan
7b11024886
Flag invalid backing types for enums
Fixes vimeo/psalm#6428
2021-09-05 20:12:24 +03:00
Bruce Weirdan
de4b344803
Merge pull request #6400 from craigfrancis/taint-limits
Add section on limitations
2021-09-04 21:32:22 +03:00
Bruce Weirdan
6e2131da43
s/aded/added/ 2021-09-04 19:27:09 +03:00
Bruce Weirdan
8c54e68efd
Added documentation on callmap editing 2021-09-04 17:39:29 +03:00
Bruce Weirdan
68ad0b2b8f
Update number of contributors 2021-09-04 16:30:16 +03:00
Craig Francis
3d65a8aca9 Add section on limitations 2021-09-04 12:46:15 +01:00
USAMI Kenta
4985109e56
Remove unnecessary [ 2021-08-12 12:08:00 +09:00
Tyson Andre
0ae573a158 [skip ci] Fix typos in docs/ 2021-08-05 16:39:14 -04:00
Bruce Weirdan
c62adf9652
Merge pull request #6198 from mmcev106/master 2021-07-31 00:23:45 +03:00
Mark McEver
92f6639e68
Minor wording change in taint analysis docs 2021-07-30 13:11:22 -05:00
Mark McEver
b574878f19
Clarified when it is safe to run taint analysis 2021-07-28 08:56:52 -05: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
Bruce Weirdan
bee4e83eca
Merge pull request #6047 from simonhammes/docs-assert-method-return-values
Docs: Add example for method call assertions (#6035)
2021-07-05 08:44:03 +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
Simon
f80ea4a623 Docs: Add example for method call assertions 2021-07-04 21:34:22 +02:00
Antonio Mangiacapra
3bc519512c
Fix typo in ConfigIssue.md
"future versions" instead of "feature versions"
2021-07-02 11:59:26 +02:00
Matthew Brown
74ec3affc2
Add reference to the has_quotes taint 2021-06-26 16:04:04 -04: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
Matthew Brown
b1b1072f41
Fix formatting 2021-06-16 11:53:45 -04:00
Matthew Brown
24fc9d8433
Add reference to literal string 2021-06-16 11:53:19 -04:00
Matthew Brown
5f8f249168
Added documentation for literal-string 2021-06-16 11:53:13 -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
Ian Dunn
2a5afe3d03
Docs: Correct beeing typo (#5840) 2021-05-28 09:43:36 -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
Matt Brown
ecd5e3b7ae Fix #5652 - use accurate type combination rules when replacing templated union 2021-04-22 00:33:49 -04:00
Benjamin Morel
3d908eda7e
Fix psalm-assert-is-false example (#5659) 2021-04-21 21:32:57 -04:00
orklah
0d524ecd5b
adding documentation about @no-named-arguments and allowNamedArgumentCalls (#5654) 2021-04-21 01:02:25 -04:00
Mark McEver
d773007f29
Added a missing word to the docs (#5644) 2021-04-19 11:46:22 -04:00
Mark McEver
37496cde05
Added a missing word to the docs 2021-04-19 10:18:25 -05:00
Jacob Dreesen
5777c00073
Add missing opening PHP tag in the docs (#5617)
* Add missing opening PHP tag in the docs

* Fix typo
2021-04-12 23:50:52 -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
sji
19554de6f6
Add @ignore-var and @psalm-ignore-var (#5488)
* add `@ignore-var` and `@psalm-ignore-var`

* Change two words

Co-authored-by: Matthew Brown <github@muglug.com>
2021-03-26 21:20:23 -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
Andrii Dembitskyi
38171934cf
Fix anchor to class-string type in documentation (#5362) 2021-03-11 00:14:57 -05: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
Matthew Brown
ad8c04ce17
Add section about verifiable docblocks 2021-03-01 00:14:24 -05:00
Matthew Brown
1c6a966e40
Remove heading for non-existent annotation 2021-03-01 00:03:59 -05:00
Matthew Brown
3e3a44b479
Update philosophy.md 2021-02-28 15:09:19 -05:00
Matthew Brown
a1be12886e
More thoughts 2021-02-28 14:57:49 -05:00
Matthew Brown
21742497d6
Add header 2021-02-28 14:49:53 -05:00
Matthew Brown
073c73e700
Update philosophy.md 2021-02-28 14:46:02 -05:00
Matthew Brown
f074be9df2
Update philosophy.md 2021-02-28 14:43:55 -05:00
Matthew Brown
21306848dc
Update philosophy.md 2021-02-28 14:41:54 -05:00
Matthew Brown
0920e46f5e
Fix links 2021-02-28 14:38:55 -05:00
Matthew Brown
e6d9791544
Update philosophy.md 2021-02-28 14:35:14 -05:00
Matthew Brown
9eea78bf60
More link fixes 2021-02-28 14:34:59 -05:00
Matthew Brown
a73fd8ca6d
fix link 2021-02-28 14:34:14 -05:00
Matthew Brown
be1e6949b8
Numbers are lame 2021-02-28 14:32:48 -05:00
Matthew Brown
4147d96881
Update philosophy.md 2021-02-28 14:32:10 -05:00
Matthew Brown
544a6f3b6c
Fix nesting 2021-02-28 14:09:19 -05:00
Matthew Brown
fafa584ad3
Add link to philosophy doc 2021-02-28 14:04:33 -05:00
Matthew Brown
26338350d9
Update philosophy.md 2021-02-28 14:02:18 -05:00
Matthew Brown
ca57e80e30
Add philosophy doc 2021-02-28 13:58:32 -05:00
elnoro
71064cf258
fixed typo in contributing/index.md (#5281) 2021-02-25 17:43:21 -05:00
Tobias Nyholm
ed6fdaaca9
[Doc] Show how to install the phar by direct download (#5274) 2021-02-24 16:22:40 -05:00
Jacob Dreesen
38d9234781
Fix some typos in the docs (#5245) 2021-02-17 16:37:19 -05:00
Matt Brown
a45b5e2ae0 Add detail about non-empty-string 2021-02-10 12:20:36 -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
Adrien LUCAS
6f1f680b2d
Add option to dump taint graph (#5080)
* Add option to dump taint graph

* Fix types

* Simplify types

Co-authored-by: Matthew Brown <github@muglug.com>
2021-01-22 16:04:15 -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
orklah
1d9987e0ed
fix phpdoc (#4905) 2020-12-29 11:42:41 +00:00
Matthew Brown
cc2933de35
Improve feature list 2020-12-19 18:09:05 +00:00
Matt Brown
e7f9ce6da0 Break out RedundantCast issues 2020-12-01 17:25:45 -05:00
Matt Brown
c000d53859 More to contributing docs 2020-11-30 01:36:12 -05:00
Matthew Brown
9a095e4428
Fix out-of-date explanation. 2020-11-30 00:05:53 -05:00
Matt Brown
c3f0a5146d Add contributing section of docs 2020-11-29 23:51:09 -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
Jeremiasz Major
e7bfcf8f82
Fix broken links in documentation (#4730)
* Fix links in documentation

* Fix more links
2020-11-28 21:03:09 -05:00
orklah
e2030b4a1e
fix #3282 (#4724) 2020-11-28 09:03:03 -05:00
Bruce Weirdan
fc29d26879
Added test to enforce that all supported annotations are documented (#4723)
* Added test to enforce that all supported annotations are documented

Well, at least mentioned.

Refs vimeo/psalm#3816

* Type things

* Make things pretty

* Only check @psalm- annotations, group

* Add documentation for `@psalm-require-extends` and `@psalm-require-implements`

* Dropped logicalOr that has become redundant

* Add explicit tag

* Document @psalm-template

* Add @psalm-template-covariant

* Document `@psalm-method`

* Add list of undocumented docblock annotations

Co-authored-by: Matthew Brown <github@muglug.com>
2020-11-27 21:48:16 -05:00
orklah
f19cac6ecf
add annotation @psalm-param-out (#4717)
* add annotation @psalm-param-out

* add tag in documentation
2020-11-27 17:05:26 -05:00
Markus Staab
a174b4c415
Document more taint types (#4704)
* Document more taint types

Taken from the TaintKind enum

* Add more of a description

Co-authored-by: Matthew Brown <github@muglug.com>
2020-11-25 19:28:02 -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
Matthew Brown
bf873b2e2a
Fix taint description 2020-11-20 19:51:59 -05:00
Matt Brown
78d644d1a1 Change TaintedText to TaintedCallable 2020-11-19 19:01:19 -05:00
Lukas Reschke
24fe7e577d
Advertise SARIF export in the documentation (#4633) 2020-11-19 17:48:57 -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
Lukas Reschke
fd06167843
$expr->name is not prefixed with $ (#4554)
The example as-is would currently not flag the following code:

```
	public function foo() {
		$foo = $bad_data;
		\shell_exec($foo);
        } 
```

Switching it to `bad_data` made it work.
2020-11-15 20:28:24 -05:00
Matthew Brown
43f6921efa
Update MixedOperand.md 2020-11-08 14:41:08 -05:00
Matthew Brown
cc5e940b28
Update to more specific example 2020-11-06 17:56:39 -05:00
Matthew Brown
1f84b23f2a
Add @weirdan's fix 2020-11-06 17:53:39 -05:00
Matthew Brown
8f05cc994a
Add aka 2020-10-31 00:18:23 -04:00
Matthew Brown
4966754358
Fix brackets 2020-10-30 23:42:47 -04: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
641e7d7008
add documentation for pure-callable (#4329) 2020-10-14 19:59:44 -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
Leighton Thomas
2b5b255ad1
Fix #3543 - add documentation for @psalm-type and @psalm-import-type (#4291) 2020-10-06 18:58:25 -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