1
0
mirror of https://github.com/danog/psalm.git synced 2024-11-26 20:34:47 +01:00
Commit Graph

420 Commits

Author SHA1 Message Date
Matthew Brown
ced092874a Make config generation smarter 2020-02-17 22:05:58 -05:00
Philip Hofstetter
395cf587d3 add plugin hook to be called after every function call
compared to AfterFunctionCallAnalysisInterface which gets only called
after a call to a function declared within the project, a plugin
implementing AfterEveryFunctionCallAnalysisInterface will get called for
every function call, including calls of PHP builtins.

On the other hand, this interface doesn't allow modification of the code
nor tweaking the return type, but it's still useful for accounting
purposes and for depreacting calls to PHP builtins

this fixes #2804
2020-02-13 09:10:24 -05:00
Bruce Weirdan
ae0b1a6acb Fix #2802
/cc: @zmitic
2020-02-12 17:43:33 -05:00
Roland Franssen
a7355fa734 Update typing_in_psalm.md 2020-02-07 10:55:44 -05:00
Matthew Brown
b3f6b56f9c Add support for @psalm-readonly-allow-private-mutation 2020-02-02 15:56:08 -05:00
Matthew Brown
93c613b5a3 Adjusted for actual implementation 2020-02-02 15:39:24 -05:00
Christian Kolb
fd6cdf61c7 Update naming to mutate 2020-02-02 15:39:24 -05:00
Christian Kolb
143756800f Add documentation for new @psalm-private-set annotation 2020-02-02 15:39:24 -05:00
Philip Hofstetter
40497e4f4c document phpVersion setting 2020-01-30 08:48:53 -05:00
Matthew Brown
5c3ec7a531 Fix #2696 - make sure static property references are prevented in pure functions 2020-01-27 22:55:20 -05:00
Barney Laurance
4a4c0f1362 Clarify documentation of --diff and --diff-methods (#2680)
* Clarify documentation of --diff and --diff-methods

* Save Psalm cache in CircleCI
2020-01-25 10:50:11 -05:00
Brown
0f659d996d Add documentation for new issue 2020-01-23 14:33:07 -05:00
HenkPoley
72b5b22474 Mention how to annotate psalm specific annotations (#2648)
* Mention how to annotate psalm specific annotations

Might be nice to mention how to annotate psalm specific annotations, without trampling over PhpDoc annotations.

* Fix key type

Co-authored-by: Matthew Brown <github@muglug.com>
2020-01-17 08:47:21 -05:00
Bruce Weirdan
17857163fc Modular config files (#2635)
This change introduces an option to have the configuration split across
several files using standard XInclude tags. This may be useful for more
complex configs, or to include auto-generated parts into a manually
written config file.
2020-01-16 15:57:52 -05:00
Jacob Dreesen
26bf183430 Fix typos (#2639) 2020-01-16 08:36:18 -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
HenkPoley
d22b13262f [For PhpStorm] How to find the global install of the language server under Windows (#2582)
* Handholding to find the global install of the language server under Windows

* Hint about a 'proper' timeout for things like Laravel
2020-01-10 08:47:01 -05:00
Brown
083fbc55e1 Add more specific UndefinedMagicMethod issue 2020-01-06 14:23:33 -05:00
Matthew Brown
4e85967184 Fix tests 2020-01-05 21:58:18 -05:00
Matthew Brown
daf6b6391d
Punctuation 2020-01-02 16:21:15 -05:00
LeSuisse
88c496121e Add an example on how to use @psalm-immutable annotation with an anonymous class (#2544)
Related to #2543
2020-01-02 14:09:11 -05:00
Markus Podar
270a99f57d Add sample for optional keys in array shapes (#2538) 2020-01-01 13:53:32 -05:00
Ruud Kamphuis
ca31931a53 Explain bool assertions (#2528) 2019-12-29 09:22:09 -05:00
Matthew Brown
a2a2d8cd97
Delimit quotes 2019-12-21 14:15:02 +00:00
Grégoire Paris
cde7c80786 Spell "covariant" properly (#2487) 2019-12-19 17:49:51 +00:00
Matthew Brown
c2464ebb71 fix link 2019-12-19 10:41:15 +00:00
Matthew Brown
7b6061efe3 Add section on template covariance 2019-12-19 10:36:14 +00:00
Valentin Udaltsov
bb52c4ce75 Update callable_types.md (#2482)
Spread operator must be a suffix in callables
2019-12-19 00:28:04 +00:00
Matthew Brown
fb85b81908 Add note about using the Phar 2019-12-18 15:35:18 +00:00
Leo Cavalcante
1bc2bb6386 Update PhpStorm usage (#2410)
There is a new option that defaults to Artifact. It should be Executable.
Windows can't figure out that the PHP interpreter will run a shell script that then calls  PHP (not sure if this even works on Unix)
And added a PHP bin dir example for Wins
2019-12-04 13:36:30 -05:00
Matthew Brown
6ce6ad4483
Add note about Shepherd 2019-12-03 09:53:37 -05:00
Brown
af5f83602e Break out more specific possibly defined offset errors 2019-11-11 09:59:56 -05:00
Bruce Weirdan
79acbadfad Added InvalidParent issue (#2320)
Refs vimeo/psalm#2304
2019-11-11 00:21:43 -05:00
ADmad
065653c58f Fix param name in example (#2317) 2019-11-09 16:26:06 -05:00
Jáchym Toušek
f2c82fa212 Add support for Iterator<X> type (#2285)
* Add support for Iterator<X> type

* Fix tests
2019-10-30 18:00:27 +00:00
Matthew Brown
4ee037923a
add link to lists 2019-10-11 09:58:34 -04:00
Matthew Brown
f25fe29c73
Add documentation for lists 2019-10-11 09:56:46 -04:00
Matthew Brown
79f2f4197a
Fix typo 2019-09-26 16:20:42 -04:00
Brown
cf799d0926 Fix #2173 - remove @var annotations automatically 2019-09-26 15:08:05 -04:00
Matthew Brown
9c629414a7 Fix #2138 - complain when inheriting from immutable interfaces without annotation 2019-09-21 22:52:30 -04:00
Brown
c5ef2516b5 Fix #2150 - add detection for unnecessary @var annotations
And also remove them from codebase
2019-09-19 11:59:43 -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
SignpostMarv
943705ce0e load an xdebug stub when required, re: vimeo/psalm#2118 (#2133)
* load an xdebug stub when required, re: vimeo/psalm#2118

* correcting case sensitivity of XDebug to Xdebug

* only load the Xdebug stub when needed
2019-09-14 10:13:39 -04:00
Jacob Dreesen
34d98f9f42 Fix description of @psalm-external-mutation-free (#2110) 2019-09-09 14:52:30 -04:00
Brown
56c884845f Static methods inside @psalm-immutable class should be permitted
Fixes #2109
2019-09-09 10:38:55 -04:00
Matthew Brown
f8b8f35c03 Add docs for @psalm-pure 2019-09-08 15:25:12 -04:00
Matthew Brown
5d08c47e4b Add docs for immutable ideas 2019-09-08 15:21:30 -04:00
Matthew Brown
51e552665e Fix #2061 - add config to allow suppression of string increment issues 2019-09-01 17:49:37 -04:00
Matthew Brown
dee2cf3281 Detect use of static inside pure function 2019-08-31 21:31:53 -04:00
Matthew Brown
6d07663d70 Annotate method getters more accurately 2019-08-30 16:40:32 -04:00
lhchavez
3e5f6b16b7 Add documentation for the <globals> project setting (#2068)
This change exposes the documentation for the <globals> project setting.
2019-08-25 23:47:39 -04:00
Markus Staab
51bf0b4001 document psalter --allow-backwards-incompatible-changes=false option (#2056) 2019-08-25 23:47:06 -04:00
Brown
95c61db513 Add a PossibleRawObjectIteration issue 2019-08-20 12:06:02 -04:00
Matthew Brown
2a5e0d8f39 Fix #1444 - track unused suppressions 2019-08-18 14:27:50 -04:00
lhchavez
c98c160907 Allow explicitly-annotated mixed assignments (#2030)
This change makes it possible to assign mixed expressions to variables
if an annotation is explicitly added to the variable. This allows the
use of `call_user_func` without needing to suppress issues.

Fixes: #1374
2019-08-17 11:22:43 -04:00
Matthew Brown
5c1b4d5a2a
Fix underscore 2019-08-16 22:28:31 -04:00
Matthew Brown
476f9ae353
Fix type links 2019-08-16 22:27:58 -04:00
Matthew Brown
88e8f105e0
Remove code from links 2019-08-16 22:24:11 -04:00
Matthew Brown
fafb7ee7e1
Remove thing that needn't be code 2019-08-16 22:21:17 -04:00
Matthew Brown
8228a0f9a5
Add more descriptive text for InvalidDocblockParamName 2019-08-15 10:52:24 -04:00
Brown
b5614d03f8 Add detection for unused function calls 2019-08-13 13:15:23 -04:00
Matthew Brown
89416c6f4f
AddWord 2019-08-13 09:24:50 -04:00
Matthew Brown
b53446e11d
Add documentation for findUnusedVariables and findUnusedCode 2019-08-13 09:24:20 -04:00
Matthew Brown
7c6b1581d3 Add warnings about uninitialised properties to mixed as well 2019-08-11 00:22:28 -04:00
Matthew Brown
85c9b6bb44
Add documentation for automatically removing UnusedVariable 2019-08-09 11:40:46 -04:00
Brown
04c12a36fe Fix docs example for impurity 2019-08-07 15:39:51 -04:00
Matthew Brown
b2c0993cdc Add framework for taint analysis to Psalm
Ref #611
2019-08-04 10:37:36 -04:00
Chad Burrus
7ded79bb27 typo fix : "you" -> "your" (#1976) 2019-07-30 13:22:26 -04:00
Matthew Brown
90854c4094 Fix broken behaviour when analysing interface test methods 2019-07-28 19:44:36 -04:00
Mikko Pesari
82e79aae20 Fix ignoreExceptions tags (#1966) 2019-07-24 07:50:40 -04:00
Matthew Brown
3df248eea2 Add concept of purity to functions and methods 2019-07-18 01:31:48 -04:00
Roland Franssen
e58660f38b Add docs for optional ObjectLike (#1942)
* Add docs for optional ObjectLike

ref #634

* Update plugins_type_system.md

* Use better letters
2019-07-17 22:54:01 -04:00
Barney Laurance
94f934627c Work in progress - resolve directories from config file location (#1904)
* Add resolveFromConfigFile config option

Treats all paths as relative to the location of the config file, not
the current working directory of the process.

This commit just changes psalm, further commits will be needed to
apply the change to psalter and the LSP server.

* Copy asset xml files into project root for testing, delete during teardown

Needed since paths are now resolved relative to the position of the
file.

Not sure why I only saw a test failre for 1.xml - would have expected it
for all eight files.

* Fix following rebase

* Move psalm --init handly code above working directory setting code

If there's no psalm.xml yet we can't use the location of psalm.xml to
set our working directory

* Move Psalm version output code above working directory resolution

Working directory doesn't need to be known to output version constant

* Rely on new config file based working directory in end to end test

* Dont use rely on config dir for --alter - not currently working

* Fix code style error

* Add failing test for supporting config without `resolveFromConfigFile="true"`

* Don't treat config directory as a path to check

* Document resolveFromConfigFile setting
2019-07-06 12:21:39 -04:00
Tyson Andre
220513c5f2 Fix typos with codespell (#1870) 2019-06-28 13:59:09 -04:00
Brown
6a95aeb7e2 Fix 404 2019-06-27 17:35:24 -04:00
Brown
0d3f5af18c Break out docblock_type_syntax.md into separate files 2019-06-27 17:00:26 -04:00
Dave Liddament
af1decf30c Add missing links to documentation (#1858)
Not sure how index for docs are generated. The hope is this should fix #1857
2019-06-27 14:36:27 -04:00
Ivan
5bb28cc493 fix typo (#1819) 2019-06-20 09:05:22 -04:00
Matthew Brown
4823e35f8e
Add rename namespace command 2019-06-19 19:49:42 -04:00
Matthew Brown
f06cd85ad0
Fix link 2019-06-19 14:21:07 -04:00
Matthew Brown
51e31ba9c9
Add separate file for adding_assertions 2019-06-19 14:19:40 -04:00
Matthew Brown
95fc208ce3
Break out assertion syntax into separate file 2019-06-19 14:19:14 -04:00
Matthew Brown
d0e84f1b88
remove slash 2019-06-19 01:39:11 -04:00
Matthew Brown
9ad6e7c024
Remove a word 2019-06-19 01:24:14 -04:00
Matthew Brown
0cd8e71368
Fix formatting 2019-06-19 01:23:49 -04:00
Matthew Brown
a46dddde4b
Add newline 2019-06-19 01:21:29 -04:00
Matthew Brown
74a96a95d0
Add assertion syntax docs (#1810)
* Create assertion_syntax.md

* Add more

* Add more details

* Add link to assertions
2019-06-19 01:09:46 -04:00
Matthew Brown
5a64e97f0f Fix #1793 - warn on deprecated function 2019-06-15 12:09:15 -04:00
mattdfloyd
6f6054f36d Update refactoring.md 2019-06-14 13:07:58 -04:00
Matthew Brown
305c40839a
Remove phpdoc note 2019-06-09 18:05:28 -04:00
Matthew Brown
d4186e4530
Add PHPDoc note 2019-06-09 18:04:00 -04:00
Matthew Brown
7a14e87e78
Add line breaks 2019-06-09 17:45:41 -04:00
Matthew Brown
bbacba4acf
Improve atomic type intro 2019-06-09 17:41:06 -04:00
Matthew Brown
0443bfc41e
Add better preamble about atomic types 2019-06-09 17:37:29 -04:00
Matthew Brown
28b0895ffb
Push union type info to bottom 2019-06-09 17:35:38 -04:00
Matthew Brown
f898bb1f2c
Remove probably-confusing explanation of union types 2019-06-09 17:31:26 -04:00
Matthew Brown
30b1b0a65c
Indent other types 2019-06-09 17:20:13 -04:00
Matthew Brown
71a184312a Improve punctuation 2019-06-09 15:48:08 -04:00
Matthew Brown
5d47dc5769 Add more obvious examples 2019-06-09 15:43:52 -04:00
Matthew Brown
c3d4acf6fe Add link 2019-06-09 15:34:19 -04:00
Matthew Brown
61102998d1 Organise atomic type page better 2019-06-09 15:32:26 -04:00
Matthew Brown
bc49787d69 Add more information about class-string 2019-06-09 15:22:26 -04:00
Matthew Brown
9c18dfed43 Fix char 2019-06-09 15:20:15 -04:00
Matthew Brown
2fd24c4765 Fix underscores 2019-06-09 15:18:06 -04:00
Matthew Brown
344164816f Break apart atomic type docs, adding listing 2019-06-09 15:16:55 -04:00
Matthew Brown
5592335a7c
Remove " 2019-06-09 09:16:43 -04:00
Matthew Brown
017ddd590a
Add better English 2019-06-09 01:41:31 -04:00
Matthew Brown
c6ffa7b55a Change paths 2019-06-09 01:07:17 -04:00
Matthew Brown
a2f444f1b9 Fix link 2019-06-09 01:05:03 -04:00
Matthew Brown
7a1a728cee Move docs into subfolders 2019-06-09 00:54:13 -04:00
Matthew Brown
8ff960af9e
Removed newline 2019-06-08 16:35:26 -04:00
Matthew Brown
21431caaca
Add preamble about templated types 2019-06-08 16:34:37 -04:00
Brown
b00d51b7db Allow misplaced required params so Psalm still inspects the code 2019-06-07 09:25:12 -04:00
Matthew Brown
e486b25173
Fix typo 2019-06-04 08:50:50 -04:00
Matthew Brown
856180ac2a
Add MissingParamType fix documentation 2019-06-04 08:45:01 -04:00
Matthew Brown
8968488fe4
Fix coercion config 2019-05-31 19:59:47 -04:00
Matthew Brown
909f5cee08
Change version constraint 2019-05-29 23:50:24 -04:00
Barney Laurance
04ef20da1f Add error message when psalter asked to work beyond its abilities; allow fixing all issues and output list of fixable issues (#1687)
* Oputput error message when asked to fix non-fixable issue

* Document ability to fix function PossiblyUndefinedGlobalVariable

* Add --issues=all option to fix all possible issues

* Add --list-supported-issues option to psalter

* Fix psalm issues

* Add newline to end of psalter help output

* Adjust messages output from psalter

* Use fwrite(STDERR, instead of die( for issue list related errors in psalter

* Restore missing exits in psalter
2019-05-27 10:05:15 -04:00
Matthew Brown
7601921ecf
Add a word 2019-05-21 23:06:50 -04:00
Matthew Brown
ee3dfba8ab
Add documentation for all 19 hooks
Fixes #1582
2019-05-16 14:32:44 -04:00
Matthew Brown
e75ee77938
Added default name 2019-05-16 14:17:40 -04:00
Barney Laurance
8f129f828b Document intersection and no-return types in docblock syntax
Also removed spaces from union type example.
2019-05-15 19:16:15 -04:00
Brown
4a434d9a2f Add separate issue for undefined classes in docblocks 2019-05-15 18:41:26 -04:00
Barney Laurance
7f4173efc5 Fix typo in docs 2019-05-14 19:30:39 -04:00
Barney Laurance
f4c754737f psalm-internal: Prevent use of @psalm-internal without @internal 2019-05-14 18:54:16 -04:00
Barney Laurance
31ae10fb00 psalm-internal - document usage of @internal and @psalm-internal tags 2019-05-14 18:54:16 -04:00
Brown
30cbcb6c36 Add ImplementedParamTypeMismatch issue
Fixes #1633
2019-05-14 15:44:46 -04:00
Jonathan H. Wage
ecb7a6c069 Add support for absolute plugin paths. 2019-05-05 16:44:36 -04:00
Jonathan H. Wage
db227dab06 Fix link to Plugins that currently 404s 2019-05-02 17:49:34 -04:00
Brown
0e4c8ce482 Split apart TypeCoercion issues, allowing more granular issue filtering 2019-04-25 18:02:19 -04:00
Ryan McCue
91be079ca6 Link to human-readable package list 2019-04-21 08:42:35 -04:00
Matthew Brown
29b70442b1 Add documentation for unused method/property removal/ 2019-04-20 17:54:17 -04:00
Dave Liddament
53e2a0e671 FIX remove extra space in markdown 2019-04-18 18:18:16 -04:00
bugreportuser
4a931770be Added doc for onlyGlobalScope 2019-04-16 22:42:45 -04:00
Matthew Brown
b00aa848e4 Split up plugins guide 2019-04-14 15:21:41 -04:00
Matthew Brown
5374211fc1
Add link to how Psalm represents types 2019-04-14 15:13:47 -04:00
Matthew Brown
7eab5cf6df Few small improvements 2019-04-14 15:12:16 -04:00
Matthew Brown
2a862040c1 Add more documentation 2019-04-14 15:12:16 -04:00
Robert Hickman
7b5e3c88e3 fix markdown error 2019-04-14 15:12:16 -04:00
Robert Hickman
a1cbf41a0e fix markdown error 2019-04-14 15:12:16 -04:00
Robert Hickman
28ecccb364 added plugins type system documentation 2019-04-14 15:12:16 -04:00
Brown
af4d10cb63 Fix #1499 - use TraitMethodSignatureMismatch when dealing with trait methods 2019-03-29 14:09:06 -04:00
Matthew Brown
dd7596ea64
Update title 2019-03-29 00:06:40 -04:00
bugreportuser
976c2c5ef3 Add an error for throws in global scope 2019-03-24 23:03:37 -04:00
Tyson Andre
2e6a2f14ed Fix typos in psalm with codespell's dictionary 2019-03-24 23:01:20 -04:00
Matthew Brown
9f7f7074ef
Add index to readme 2019-03-20 11:49:17 -04:00
Matthew Brown
41f0034185
Delete index.md 2019-03-20 11:48:20 -04:00
Matthew Brown
12b5d05a86
Update and rename introduction.md to README.md 2019-03-20 11:35:55 -04:00
Matthew Brown
b6d0f89d52
Fix typo 2019-03-19 22:40:27 -04:00
Matthew Brown
6f9945cc09
Change name 2019-03-19 22:39:42 -04:00