Maks Rafalko
b6873b0e72
ignoreInternalFunctionFalseReturn
default to false in XSD, but documentations says true
...
See 27598f508e/config.xsd (L46)
2020-03-12 09:12:23 -04:00
Matthew Brown
ef64e6e8eb
Improve abstract call handling
2020-03-11 10:36:39 -04:00
Matthew Brown
0d62fbdf98
Detect erroneous abstract static method calls
2020-03-11 10:18:40 -04:00
Philip Hofstetter
d315822bfa
make skipping of checks after invalid includes configurable
...
as suggested in the PR it's best to make the setting configurable.
In order not to break existing installations, we default to keeping the
old behaviour, but in a later version of psalm, we might change the
default.
2020-02-27 18:49:23 -05:00
Matthew Brown
106102d0a5
Add line break
2020-02-23 00:41:19 -05:00
Matthew Brown
a706f4d722
Fix #2242 - warn when using mutable dependencies
2020-02-22 10:04:46 -05:00
Brown
7d99a15072
Fix #2805 - forbid passing in mutable class to mutation-free context
2020-02-21 18:25:35 -05:00
Tarmo Leppänen
f51384e74e
Update dealing_with_code_issues.md
2020-02-20 13:47:13 -05:00
Matthew Brown
306ed07cfc
Update readme
2020-02-18 23:50:53 -05:00
Matthew Brown
2e4154d76e
Add better defaults and documentation
2020-02-18 20:30:37 -05:00
Matthew Brown
320f3ec863
Update level config name
2020-02-17 22:43:13 -05:00
Matthew Brown
a55686b6e4
Move to more appropriate location
2020-02-17 22:21:04 -05:00
Matthew Brown
2cb3d0f9f3
Fix error level docs
2020-02-17 22:19:28 -05:00
Matthew Brown
a2c2a55ae6
Update documentation
2020-02-17 22:06:28 -05:00
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