Matthew Brown
a79255cc99
Remove strict-
2022-11-11 20:43:19 -05:00
Matthew Brown
256d9ac1a5
Remove strict-array from docs
2022-11-11 20:42:06 -05:00
Matthew Brown
8d36bdc3ed
Make array shapes strict by default ( #8701 )
...
* Make array shapes strict by default
* Fix PSL tests
2022-11-11 20:14:21 -05:00
Bruce Weirdan
0f528d05f7
Update docs/running_psalm/issues/InvalidEnumCaseValue.md
2022-11-10 20:26:37 -04:00
Bruce Weirdan
6effd1bd2d
Flag invalid enum case value types
...
Fixes vimeo/psalm#8267
2022-11-10 19:55:18 -04:00
Thomas Landauer
c51d3665eb
Removing list
...
see https://github.com/vimeo/psalm/pull/8696#issuecomment-1310677110
2022-11-10 20:19:02 +01:00
Bruce Weirdan
4d53d26f00
Merge pull request #8689 from Nicelocal/fix_formatting
2022-11-10 13:21:37 -04:00
Thomas Landauer
0c102a244e
Fixing code formatting
2022-11-10 16:59:04 +01:00
f8b9e97592
Fix heading indentation
2022-11-09 12:28:57 +01:00
9c23824b08
Try fix formatting
2022-11-09 10:17:38 +01:00
2e04aff60f
Fix docs
2022-11-08 20:34:26 +01:00
0d0e965042
Fix typo
2022-11-08 17:54:43 +01:00
a341863db2
Fix typo
2022-11-08 17:54:03 +01:00
c720e41469
Better docs
2022-11-08 16:00:00 +01:00
383cec6863
Add missing docs
2022-11-08 10:29:04 +01:00
1986c8b4a8
Add support for strict arrays, fix type alias intersection, fix array_is_list assertion on non-lists ( #8395 )
...
* Immutable CodeLocation
* Remove excess clones
* Remove external clones
* Remove leftover clones
* Fix final clone issue
* Immutable storages
* Refactoring
* Fixes
* Fixes
* Fix
* Fix
* Fixes
* Simplify
* Fixes
* Fix
* Fixes
* Update
* Fix
* Cache global types
* Fix
* Update
* Update
* Fixes
* Fixes
* Refactor
* Fixes
* Fix
* Fix
* More caching
* Fix
* Fix
* Update
* Update
* Fix
* Fixes
* Update
* Refactor
* Update
* Fixes
* Break one more test
* Fix
* FIx
* Fix
* Fix
* Fix
* Fix
* Improve performance and readability
* Equivalent logic
* Fixes
* Revert
* Revert "Revert"
This reverts commit f9175100c8452c80559234200663fd4c4f4dd889.
* Fix
* Fix reference bug
* Make default TypeVisitor immutable
* Bugfix
* Remove clones
* Partial refactoring
* Refactoring
* Fixes
* Fix
* Fixes
* Fixes
* cs-fix
* Fix final bugs
* Add test
* Misc fixes
* Update
* Fixes
* Experiment with removing different property
* revert "Experiment with removing different property"
This reverts commit ac1156e077fc4ea633530d51096d27b6e88bfdf9.
* Uniform naming
* Uniform naming
* Hack hotfix
* Clean up $_FILES ref #8621
* Undo hack, try fixing properly
* Helper method
* Remove redundant call
* Partially fix bugs
* Cleanup
* Change defaults
* Fix bug
* Fix (?, hope this doesn't break anything else)
* cs-fix
* Review fixes
* Bugfix
* Bugfix
* Improve logic
* Add support for list{} and callable-list{} types, properly implement array_is_list assertions (fixes #8389 )
* Default to sealed arrays
* Fix array_merge bug
* Fixes
* Fix
* Sealed type checks
* Properly infer properties-of and get_object_vars on final classes
* Fix array_map zipping
* Fix tests
* Fixes
* Fixes
* Fix more stuff
* Recursively resolve type aliases
* Fix typo
* Fixes
* Fix array_is_list assertion on keyed array
* Add BC docs
* Fixes
* fix
* Update
* Update
* Update
* Update
* Seal arrays with count assertions
* Fix #8528
* Fix
* Update
* Improve sealed array foreach logic
* get_object_vars on template properties
* Fix sealed array assertion reconciler logic
* Improved reconciler
* Add tests
* Single source of truth for test types
* Fix tests
* Fixup tests
* Fixup tests
* Fixup tests
* Update
* Fix tests
* Fix tests
* Final fixes
* Fixes
* Use list syntax only when needed
* Fix tests
* Cs-fix
* Update docs
* Update docs
* Update docs
* Update docs
* Update docs
* Document missing types
* Update docs
* Improve class-string-map docs
* Update
* Update
* I love working on psalm :)
* Keep arrays unsealed by default
* Fixup tests
* Fix syntax mistake
* cs-fix
* Fix typo
* Re-import missing types
* Keep strict types only in return types
* argc/argv fixes
* argc/argv fixes
* Fix test
* Comment-out valinor code, pinging @romm pls merge https://github.com/CuyZ/Valinor/pull/246 so we can add valinor to the psalm docs :)
2022-11-05 22:34:42 +01:00
webmaster777
c6c6d083e1
Update PossiblyFalseReference.md
...
Typo than -> that
2022-10-26 19:52:31 +02:00
Zena Hirsch
459fdcd588
Fix typo: "unitialized"
2022-10-19 14:36:43 -04:00
Pavel Chaplygin
48da8342ad
Docs: Fix minor php syntax issues in code examples
2022-10-18 14:57:50 +03:00
cbd1a27ea7
Merge branch 'master' into merge_4.x
2022-10-16 13:49:21 +02:00
748a74bb2c
Merge remote-tracking branch 'origin/4.x' into HEAD
2022-10-16 13:41:27 +02:00
ADmad
9bd4d7a740
Fix template param for SplDoublyLinkedList.
...
It's key is always an integer.
2022-10-14 11:54:53 +05:30
kkmuffme
b68ac865e1
add docs
2022-09-24 10:44:12 +02:00
kkmuffme
7cdad99645
add RiskyCast
2022-09-19 21:54:16 +02:00
orklah
3b7e508c78
Merge pull request #8473 from kkmuffme/detailed-superglobal-types
...
make superglobals more specific
2022-09-19 10:48:44 +02:00
orklah
89b034acaf
Merge pull request #8492 from HypeMC/consistent-docs-examples
...
Make template constraints examples in docs consistent
2022-09-18 11:23:21 +02:00
HypeMC
014cddb9dd
Document the object with properties syntax
2022-09-17 23:46:19 +02:00
HypeMC
ee16caf596
Make template constraints examples in docs consistent
2022-09-17 22:20:01 +02:00
kkmuffme
5c39e66b15
fix tests
2022-09-15 19:38:51 +02:00
Daniel Schmelz
9c67b85f39
Fix typos
2022-08-20 23:29:03 +02:00
Thomas Landauer
f87becfb3b
Adding note about referencedMethod
...
Info is taken from https://github.com/vimeo/psalm/issues/2297#issuecomment-549480186
2022-08-13 16:14:51 +02:00
AndrolGenhald
66ebf4a55c
Rename TKeyOfArray to TKeyOf.
2022-07-18 14:44:29 -05:00
AndrolGenhald
b51b5ac903
Allow value-of
to work with backed enums ( fixes #7874 ).
2022-07-18 14:10:06 -05:00
AndrolGenhald
285740a753
Merge branch '4.x'
2022-07-07 15:01:38 -05:00
Thomas Landauer
3bca297fba
Bringing back <?php
2022-06-21 22:45:45 +02:00
Thomas Landauer
80bcc8b5e3
Improving second link too :-)
2022-06-21 21:55:32 +02:00
Thomas Landauer
7201f0941b
Improving link syntax
2022-06-21 20:56:20 +02:00
Thomas Landauer
fd2683fcc6
Adding common problem cases and possible solutions
...
See https://github.com/vimeo/psalm/issues/8133#issuecomment-1162010190
Don't know if this is the best way to explain this, but it's a start :-)
Is there a better way to add the link to https://psalm.dev/docs/annotating_code/supported_annotations/#psalm-mutation-free ?
I also removed the `<?php` tag from the code block.
2022-06-21 20:23:23 +02:00
Barney Laurance
c064edcbb7
use backticks in docs
2022-06-06 18:26:35 +01:00
Barney Laurance
a7c92661fa
Use int<1,max> to define positivity
2022-06-06 17:05:59 +01:00
Barney Laurance
99372a2286
Clarify in docs that zero is not considered a positive-int
...
I wasn't sure from reading the docs whether or not Psalm consider zero to be positive.
2022-06-06 16:13:30 +01:00
orklah
ec9a9994f5
Merge pull request #8022 from AndrolGenhald/bugfix/8018-improve-failure-case-for-references
...
Improve handling of unsupported references (fixes #8018 ).
2022-05-27 19:09:05 +02:00
Rudolph Gottesheim
6f00a72446
Fix a typo in MissingConstructor.md
2022-05-27 11:04:00 +02:00
AndrolGenhald
31b4dceaf4
Improve handling of unsupported references ( fixes #8018 ).
2022-05-26 18:28:23 -05:00
Mathieu Rochette
9b2cf438a5
fix small error in plugins_type_system.md
...
int-mask → int-mask-of
2022-05-02 11:08:51 +02:00
Matt Brown
2ef993928c
Document @psalm-ignore-variable-*
2022-04-27 01:46:13 -04:00
Matt Brown
20351c6667
Avoid json_encode when serializing non-UTF8 literals
...
`\Psalm\Internal\Clause::$hash` basically holds a hash on
arbitrary input literals, used for later comparison. Using
`json_encode` fails when dealing with non-UTF8 literals,
which has been replaced by plain PHP `serialize`.
Resolves : #7771
2022-04-27 01:42:37 -04:00
Mark McEver
6e3c305dc0
Documented the allowMissingFiles attribute for ignoreFiles
2022-04-14 10:03:21 -05:00
Mark McEver
ea424d79a6
Merge branch 'master' into master
2022-04-13 12:30:37 -05:00
Mark McEver
d28ead12e0
Documented the allowMissingFiles attribute for ignoreFiles
2022-04-13 12:29:06 -05:00
Jeremiasz Major
ce25b39b5d
Document @psalm-ignore-variable-*
2022-04-08 00:30:23 +02:00
Jeremiasz Major
23ad8d6684
Fix typos
2022-04-07 21:50:19 +02:00
Jeremiasz Major
f4f1a26cf9
Document @psalm-yield
2022-04-07 21:43:12 +02:00
Jordi Boggiano
1eb8b5a853
without with
2022-03-23 14:49:51 +01:00
Jordi Boggiano
88a93294b4
Fix int-mask-of doc example
2022-03-23 12:19:07 +01:00
e7ec124ebb
Add documentation for maxStringLength and maxShapedArraySize configs
2022-03-15 11:05:57 +01:00
d4170feb0f
Add documentation for maxStringLength and maxShapedArraySize configs
2022-03-15 10:14:36 +01:00
Patrick Remy
95de0c8dd6
docs: add key-of and value-of to utility types chapter
2022-02-24 18:50:57 +01:00
Patrick Remy
51f3b9869b
docs: add properties-of type to plugins type system
2022-02-24 18:50:35 +01:00
Patrick Remy
8ebc9b599f
docs: describe template support of properties-of<T>
2022-02-23 21:53:02 +01:00
Patrick Remy
5e74445f70
docs: add utility types chapter
2022-02-22 20:51:17 +01:00
Bruce Weirdan
d7d846edc8
Merge branch '4.x' into upstream-master
2022-02-20 02:31:15 +02:00
AndrolGenhald
c1077f32d3
Improve documentation for InvalidGlobal to explain that it's sometimes valid.
2022-02-18 11:36:25 -06:00
AndrolGenhald
bd963e4baa
Fix issue documentation links.
2022-02-17 13:04:25 -06:00
AndrolGenhald
d09e420939
Add @psalm-check-type
and @psalm-check-type-exact
.
...
I initially added these as part of my TryAnalyzer rewrite to allow testing complicated `finally` types like this:
```
$foo = 1;
try {
$foo = 2;
} catch (Exception $_) {
$foo = 3;
} finally {
$bar = $foo;
/** @psalm-check-type-exact $bar = 1|2|3 */;
}
/** @psalm-check-type-exact $bar = 2|3 */;
```
Using the `'assertions'` in tests doesn't work since the type is different inside the `finally`.
I decided to extract the new annotation from the rest of my changes and do a separate pull request since I think others may find it useful, and it should be much easier to review than the entire TryAnalyzer rewrite.
2022-02-17 10:37:13 -06:00
eb3df40fbb
Add option to disable @var parsing everywhere except for properties.
2022-02-15 10:04:56 +01:00
AndrolGenhald
cc2334f40d
More class const improvements.
...
Add InvalidClassConstType issue as alternative to LessSpecificClassConstType when type isn't contravariant.
Handle final class consts (#6395 ).
Use double quotes for types in class const issues.
2022-02-13 17:19:25 -06:00
orklah
85fca56850
remove totallyTyped
2022-02-12 10:19:14 +01:00
m1ke
810880c71b
Alter order of precedence and upated docs to match
2022-02-11 11:12:36 +00:00
Bruce Weirdan
11e60fa261
Merge branch '4.x' into upstream-master
2022-02-11 03:51:48 +02:00
Bruce Weirdan
8a41d61925
Apply suggestions from code review
...
Co-authored-by: AndrolGenhald <AndrolGenhald@users.noreply.github.com>
2022-02-06 00:49:27 +02:00
orklah
e40bcc2d29
doc about property initialization
2022-02-05 12:27:53 +01:00
AndrolGenhald
94eda1a9f9
Fix bullet indentation in documentation.
2022-02-02 14:48:24 -06:00
AndrolGenhald
9429010fda
Fix documentation for <globals> config.
2022-02-02 14:38:01 -06:00
Bruce Weirdan
f61193b798
Reinstate MethodSignatureMustProvideReturnType
...
It's never emitted, but is there for BC.
2022-01-31 23:38:15 +02:00
orklah
2e01e9b7cd
Merge pull request #7396 from Patrick-Remy/feat/key-of-value-of-improvements
...
feat: make key-of/value-of usable with non-const arrays
2022-01-31 21:39:01 +01:00
Bruce Weirdan
603714518b
Revert "PHP 8.1: Report missing typehints in overridden native methods"
2022-01-31 14:37:42 +02:00
8d0c1c62e8
Ensure all template parameters are specified in classes, interfaces, traits
2022-01-31 10:06:31 +01:00
Bruce Weirdan
997592de64
Merge pull request #7530 from ohader/issue-7528
2022-01-31 10:36:47 +02:00
Oliver Hader
f5986950a2
[FEATURE] Introduce BeforeStatementAnalysisEvent
...
As counterpart to existing `AfterStatementAnalysisEvent` - invoked in
`\Psalm\Internal\Analyzer\StatementsAnalyzer` - this changed introcued
a corresponding `BeforeStatementAnalysisEvent`.
Resolves : #7534
2022-01-30 19:27:19 +01:00
Oliver Hader
e3602bbfe1
[FEATURE] Allow to intercept adding issue in IssueBuffer
...
This change introduces new `BeforeAddIssueEvent` which is invoked
from `IssueBuffer::add`, which allows to collect and intercept code
issue in a generic way.
Resolves : #7528
2022-01-30 17:46:08 +01:00
Oliver Hader
62a0ece035
!!! Allow plugins to modify Config::$fileExtensions early
...
ProjectAnalyzer consumed Config::$fileExtensions early in its
constructor - without having processed plugins' modifications,
registering their custom scanners or analyzer implementations.
This change
* adds new specific interface \Psalm\Plugin\FileExtensionsInterface
to be used by plugin implementations
* extracts file extension handling from \Psalm\PluginRegistrationSocket
and interface \Psalm\Plugin\RegistrationInterface to a new dedicated
\Psalm\PluginFileExtensionsSocket and new interface
\Psalm\Plugin\FileExtensionsInterface
!!! this is a breaking change in PluginRegistrationSocket !!!
* adds runtime in-memory cache for Config::$plugins
* calls new method Config::processPluginFileExtensions(), providing
modifications to file extension only early in ProjectAnalyzer
* adjusts documentation
2022-01-30 13:06:00 +01:00
orklah
4609bc4e25
Merge pull request #7471 from klimick/function-dynamic-storage-provider
...
Function dynamic storage provider
2022-01-28 18:46:26 +01:00
adrew
5b78125d11
Add doc for DynamicFunctionStorageProviderInterface
2022-01-28 15:18:30 +03:00
AndrolGenhald
5c01913456
Remove deprecated loadXdebugStub attribute.
2022-01-27 16:55:20 -06:00
AndrolGenhald
5cd3b68ab3
Add documentation for enableExtensions and disableExtensions.
2022-01-27 16:31:09 -06:00
Patrick Remy
8cd5ccd076
feat: make value-of<T>
capable for template types
2022-01-27 22:28:40 +01:00
Patrick Remy
2880d046ce
feat: make key-of/value-of usable with non-const arrays
2022-01-27 22:22:14 +01:00
orklah
9168cef2d4
Merge remote-tracking branch 'upstream/4.x' into upstream-master6
2022-01-26 21:06:25 +01:00
AndrolGenhald
e268a05307
Minor fixes after rebasing.
2022-01-26 12:57:19 -06:00
AndrolGenhald
f9450656e1
Add support for references and improve UnusedVariable checks ( fixes #7254 ).
2022-01-26 12:55:47 -06:00
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