Matthew Brown
b8b752ed01
Fix #1402 - don’t halt after suppressing static UndefinedMethod
2019-02-28 23:46:11 -05:00
Matthew Brown
b3c5120d72
Fix #1403 - warn about duplicate templates
2019-02-28 23:43:55 -05:00
Brown
b2c236a1a1
Allow @psalm-variadic annotation
2019-02-28 14:44:35 -05:00
Brown
815bf845dc
Improve handling of method/function return types
2019-02-27 17:06:44 -05:00
Brown
f8c2b2d81a
Fix #1399 - allow literal comparison to scalar
2019-02-27 16:21:23 -05:00
Brown
07825c9ff8
Fix long line
2019-02-27 16:16:19 -05:00
Brown
601f303de2
Fix position of invalid param
2019-02-27 16:00:44 -05:00
Brown
d46c6ac0e4
Fix #1395 - set all callable types as coming from a docblock
2019-02-27 14:52:58 -05:00
François Kooman
fa26499dd9
fix return value for Sodium\crypto_aead_aes256gcm_decrypt
2019-02-27 14:24:57 -05:00
Brown
1263a2e9a3
Fix missing param location
2019-02-27 14:17:11 -05:00
Brown
119687f934
Fix redundant condition message when negating a docblock type
2019-02-27 14:02:02 -05:00
Matthew Brown
6af222f36a
Fix #1393 - support analysing non-empty-array calls
2019-02-27 09:08:27 -05:00
Matthew Brown
b310cc07b5
Array access on objects should always be treated as method call
2019-02-26 21:24:30 -05:00
Bruce Weirdan
9c5ee3e9d6
Added AfterCodebasePopulated hook registration
2019-02-26 01:16:22 -05:00
Bruce Weirdan
24a71be425
Added Hook\AfterCodebasePopulatedInterface
2019-02-26 01:16:22 -05:00
Matthew Brown
8650f9eb1a
Fix #1356 - improve assertion system to work better on function calls
2019-02-26 01:03:33 -05:00
Bruce Weirdan
abb1c95b94
Limited custom metadata to be (array of) scalars
...
Also moved `$custom_metadata` property to trait
2019-02-25 10:19:31 -05:00
Bruce Weirdan
19a9ff4bcf
Added custom storage metadata
2019-02-25 10:19:31 -05:00
Brown
f5ce136dc7
Simplify handle type for pcntl_signal
2019-02-25 10:16:16 -05:00
bugreportuser
7f7125f334
Fix crash for empty string array access
2019-02-25 08:26:12 -05:00
Matthew Brown
4f770d356e
Fix #1384 - evaluate array fetches even when we don’t know function
2019-02-24 09:58:11 -05:00
Matthew Brown
674657a51d
Fix 7.0-incompatible logic
2019-02-24 01:47:53 -05:00
Matthew Brown
3ad1abece4
Add generation of json artifacts
2019-02-24 01:33:25 -05:00
Matthew Brown
fff56f7b26
Use better heuristic to determine missing types
2019-02-23 11:39:00 -05:00
Matthew Brown
cdae79b9fe
Fix unnecessary params in Psalm codebase
2019-02-23 11:31:33 -05:00
bugreportuser
68a135f434
Allow @psalm-property and @psalm-method
2019-02-23 11:04:08 -05:00
bugreportuser
34b333cf7f
Fix file return types
2019-02-23 11:03:35 -05:00
Matthew Brown
6671e0dc7c
Fix #1382 - flag unused docblocks
2019-02-23 11:02:04 -05:00
Matthew Brown
6420a5605b
Put nullable in docblock for PHP 7.0
2019-02-22 01:05:35 -05:00
Matthew Brown
3d4710c9d3
Add better checks for invalid array_map/array_filter args
2019-02-22 00:50:41 -05:00
Matthew Brown
ce4f2e6334
Fix #1364 - use proper types for extended getIterator calls
2019-02-21 23:01:34 -05:00
Matthew Brown
f87827e812
Fix #1288 - prevent template names from clashing with real-world classes
2019-02-21 21:54:00 -05:00
Matthew Brown
1c8a573b5f
Change TGenericParam to TTemplateParam
2019-02-21 21:40:06 -05:00
Brown
154e1fa38b
Fix #1375 - improve treatment of dynamically-declared namespaces
2019-02-21 18:19:12 -05:00
Brown
653555a8cc
Remove unused var
2019-02-21 17:49:33 -05:00
Brown
41b133178a
Improve handling of count comparisons
2019-02-21 17:17:10 -05:00
Brown
00b225beda
Strip $ in token
2019-02-21 16:13:31 -05:00
Brown
0b7d4e4aad
Add slightly hacky support for param names in callables
2019-02-21 16:00:18 -05:00
Brown
375f3917b2
Prevent empty unions as soon as possible
2019-02-21 15:09:55 -05:00
Brown
b7a0950aea
Prevent passing casts to byref vars
2019-02-21 13:26:37 -05:00
Bruce Weirdan
991fd90a12
Added tests for exposed methods
2019-02-21 08:43:57 -05:00
Matthew Brown
0e5ee1a811
Fix typo
2019-02-21 08:43:57 -05:00
Bruce Weirdan
adc5d24399
Added documentation for several exposed methods
...
Documented:
- isTypeContainedByType
- canTypeBeContainedByType
- getKeyValueParamsForTraversableObject
2019-02-21 08:43:57 -05:00
Bruce Weirdan
a0e040a462
Expose more internal methods through Codebase
...
- `bool Codebase::canTypeBeContainedByType(Union $input, Union $container)`
- `array{Union,Union} Codebase::getKeyValueParamsForTraversableObject(Atomic $type)`
For usage, see psalm/phpunit-psalm-plugin#15
2019-02-21 08:43:57 -05:00
Brown
1e2c29041f
@param-out should not override @param byref type def
...
when checking for unuitialised vars
2019-02-20 18:53:42 -05:00
Brown
079ac44263
Prevent pass by ref when type type is given
2019-02-20 17:43:12 -05:00
Brown
d2968081f8
Fix #1370 - allow phpstorm generic iterator
2019-02-20 11:13:40 -05:00
bugreportuser
024488c1d6
Use helper methods
2019-02-20 10:55:36 -05:00
bugreportuser
c097c59f33
Remove wrong condition
2019-02-20 10:55:36 -05:00
bugreportuser
14ee221075
Fix errors
2019-02-20 10:55:36 -05:00
bugreportuser
cd23a19931
Allow concat for define first arg
2019-02-20 10:55:36 -05:00
bugreportuser
f603449745
Infer literal string for __namespace__
2019-02-20 10:55:36 -05:00
Matthew Brown
6b045236e0
Use appearing method for array lookup
2019-02-20 02:41:59 -05:00
Brown
348b8eef1f
Fix #1366 - don’t complain about invalid array offset when possibly mixed
2019-02-19 11:42:24 -05:00
Matthew Brown
cd2eb3edb9
Fix #1361 - flesh out array map return type before using
2019-02-19 01:25:36 -05:00
bugreportuser
61e086ac7b
Ignore more redundant issues
2019-02-18 22:44:26 -05:00
Matthew Brown
f49be31aeb
Fix #1332 - use the correct identifier for trait property resolution
2019-02-18 16:52:09 -05:00
Matthew Brown
41255b42c6
Fix #1325 - allow MissingThrowsDocblock to be suppressed
2019-02-18 16:41:06 -05:00
Matthew Brown
75104f4712
Fix #1359 - error on bad iterable args
2019-02-18 16:35:23 -05:00
Matthew Brown
6b419452af
Fix #1337 - don’t crash when examining __call methods in initialisation checks
2019-02-18 16:04:27 -05:00
Matthew Brown
81a5a24e15
Suppress PossiblyUnusedMethod
2019-02-18 15:56:31 -05:00
Bruce Weirdan
e87f500458
Added Psalm\Codebase::isTypeContainedByType()
2019-02-18 15:56:31 -05:00
Matthew Brown
3fdef1a032
Fix #1350 - allow parameterised iterable and unparameterised traversable
2019-02-18 13:01:20 -05:00
Matthew Brown
709a5c31da
Allow bitwise or ops to change type
...
Ref #1340
2019-02-18 12:53:55 -05:00
Matthew Brown
5aaa68c214
Add better error message and also update callmap
2019-02-18 12:28:30 -05:00
Matthew Brown
12f1ffca11
Fix issue reconciling mixed vars inside loop
2019-02-18 11:39:05 -05:00
Bruce Weirdan
faae9fda3b
Added option to force dead code detection
...
Previously Psalm would only check class references when there were no
paths passed on the command line. Now it's possible to force this check
even when paths are specified, with `--find-dead-code=always`.
`--find-dead-code` without a value (or with any value apart from `always`)
will continue to work the same way it did before.
2019-02-18 09:34:28 -05:00
ADmad
8d54825582
Fix signature for datefmt_create().
2019-02-18 09:33:08 -05:00
Bruce Weirdan
cb453a8da9
Allow suppressing UnusedClass on specific classes
...
This allows suppressing UnusedClass with either `referencedMethod` or
`@psalm-suppress`
Fixes vimeo/psalm#1353
2019-02-18 09:32:09 -05:00
bugreportuser
24cdb6e1d3
Fix array_unique stub
2019-02-17 21:35:54 -05:00
Matthew Brown
5777e008c0
Remove var_dump
2019-02-17 13:18:23 -05:00
Bruce Weirdan
8408effe57
Dropped unused uses
2019-02-17 13:17:45 -05:00
bugreportuser
93bc7c477e
Fix mb return types
2019-02-17 13:16:55 -05:00
ADmad
7298638dff
Fix invalid return type in callmap.
...
apu_delete() only returns boolean.
http://php.net/manual/en/function.apcu-delete.php
2019-02-17 13:15:59 -05:00
Matthew Brown
40a91eab6e
Fix #1339 - no crash when using self/static/parent in closure
2019-02-17 13:14:59 -05:00
bugreportuser
8edb117451
Fix password_hash change between versions
2019-02-16 23:57:49 -05:00
bugreportuser
13f182bf9f
Revert "fixed password_hash signature"
...
This reverts commit 32377d6751
.
2019-02-16 22:13:05 -05:00
Matthew Brown
a428b34a1a
Fix #1338 - ignore redundant issues when collecting initialisations
2019-02-16 20:27:42 -05:00
Matthew Brown
356a45a155
Improve ergonomics of PHPStorm meta parsing
2019-02-16 18:50:25 -05:00
Matthew Brown
2ef82d785f
Improve signature of FunctionReturnTypeProvider to omit internal things
2019-02-16 15:29:54 -05:00
Matthew Brown
fa362b04cb
Fix treatment of '' => '@' mapped value
2019-02-16 12:16:34 -05:00
Matthew Brown
0739d017ac
Use information from .phpstorm.meta.php files in stubs
2019-02-16 11:16:52 -05:00
Matthew Brown
d5420a7708
Suppress PossiblyUnusedParam for PHP 7.0
2019-02-15 18:50:23 -05:00
Matthew Brown
0c9c8c204c
Suppress UndefinedMethod for Php 7.0 Psalm check
2019-02-15 18:41:30 -05:00
Matthew Brown
149d7cab1c
Add PHP 7.0-compatible closure creation
2019-02-15 18:33:29 -05:00
Matthew Brown
d76459e138
Move to a PHPStan-like return type provider class model
2019-02-15 18:00:40 -05:00
Matthew Brown
0ea22e8d82
If we’re checking $_SESSION for existence return an array
...
Fixes #1335
2019-02-15 15:58:36 -05:00
Brown
dca8bf9d36
Fix #1329 - improve handling arrays with string offsets
2019-02-15 14:42:17 -05:00
Brown
d70e29508f
Don’t fatal error when callable class does not exist
2019-02-15 12:02:44 -05:00
Brown
0f45d14fea
Only collapse Traversable|array when we’re super sure it’s safe
...
Fixes #1333
2019-02-15 11:07:08 -05:00
Brown
27c99aed2f
Improve recovery from InvalidScalarArgument issue
2019-02-14 16:55:54 -05:00
Brown
9f1dc425d0
Reduce repetition in the baseline files
2019-02-13 15:10:50 -05:00
Brown
50421b297a
Don’t report undefined properties when collecting initialisations
2019-02-13 14:04:10 -05:00
Brown
3deea3980d
Add checks for unitialized properties
...
Fixes #1328
2019-02-13 13:32:19 -05:00
Matthew Brown
3497ad4765
Allow namespaced use of optional callable params
2019-02-11 08:41:48 -05:00
Matthew Brown
7fdc226ac5
Always remove callable type
2019-02-11 01:44:07 -05:00
Matthew Brown
e5360a6faa
Check callable types too
2019-02-11 01:41:28 -05:00
Matthew Brown
867ea1fa34
Fix #1320 - allow iterable comparison
2019-02-10 23:51:26 -05:00
Matthew Brown
8fc0b43973
Fix typecercion issues
2019-02-10 21:13:06 -05:00
Matthew Brown
0ec83a24d4
Fix docblocks cc @SignpostMarv
2019-02-10 20:57:22 -05:00
SignpostMarv
230821591a
amending methods
2019-02-10 20:40:32 -05:00
SignpostMarv
60f9d3558c
templating for ReflectionClass
2019-02-10 20:40:32 -05:00
Matthew Brown
c6b3fc512f
Don’t throw exception when ignoring trait absence
2019-02-10 16:32:30 -05:00
Matthew Brown
af61e167f4
Add callable literal string
...
Fixes #1315
2019-02-10 16:27:37 -05:00
Matthew Brown
9a8f969d5c
Fix #1314 - make sure we always know what a closure is if we’re using one
2019-02-10 16:23:31 -05:00
Matthew Brown
c58100e3af
Fix #1313 - don’t allow mixed function calls
2019-02-10 16:15:52 -05:00
Matthew Brown
7a1ff78bb3
Fix #1316 - is_iterable should remove arrays from union
2019-02-10 15:56:35 -05:00
Matthew Brown
62fb8035bf
Fix #1309 - no PropertyNotSetInConstructor warnings for grandchild of class
2019-02-10 15:01:10 -05:00
Matthew Brown
6976528c7e
Fix #1310 - check template defining class matches
2019-02-10 12:02:18 -05:00
Matthew Brown
c765d0e969
Fix #1307 - improve generator array type
2019-02-09 15:48:15 -05:00
Matthew Brown
83e22a10f8
Fix #1299 - vars defined in catches before throw are possibly-defined for finally
2019-02-09 15:39:30 -05:00
Matthew Brown
574a5530ee
Use $baselineFile
for current baseline
2019-02-09 11:20:48 -05:00
Maria Luiza Soares
5bd16c686f
Show total fixed errors when updating baseline
2019-02-09 11:20:48 -05:00
bugreportuser
6c7819b438
Allow @psalm-template for classes
2019-02-09 11:15:25 -05:00
Brown
c68209b8f3
Fix #1300 - add functions mentioned in class file where class is used
2019-02-08 17:41:03 -05:00
Matthew Brown
f4518d59e0
Fix #1303 - improve handling of class-string<Foo> type arg passed to class-string<T> param
2019-02-08 13:34:30 -05:00
Matthew Brown
98644f7a65
Allow more-specific template types to override mixed
2019-02-08 13:09:36 -05:00
Matthew Brown
6d0e78540a
Only move issue once
2019-02-07 18:47:50 -05:00
Matthew Brown
0bca8db561
Don’t throw exception when property is missing type
2019-02-07 18:10:32 -05:00
Matthew Brown
e6f3948f7b
Fix #1297 - prevent false positive TypeDoesNotContainType for class const array offset
2019-02-07 16:24:31 -05:00
Matthew Brown
ed4ed957c8
Use more specific templated argument
2019-02-07 15:21:34 -05:00
Matthew Brown
fbe5801345
Prevent issues being forgotten when another error crops up
2019-02-07 14:06:37 -05:00
Matthew Brown
c383e61805
Fix #1296 - array_filter should allow scalar values
2019-02-07 13:05:17 -05:00
Matthew Brown
17541b415f
Fix #1191 - allow Psalm to check against different versions of PHP
2019-02-07 12:25:57 -05:00
Matthew Brown
f8f5ddfb04
Add support for string range
2019-02-07 10:50:42 -05:00
SignpostMarv
3de4457a45
adding type-hinting stub for array_chunk()
2019-02-06 16:43:22 -05:00
Matthew Brown
c758678022
Fix remaining issues
2019-02-06 16:08:41 -05:00
Matthew Brown
e7d73c3ff2
Fix generator ref
2019-02-06 16:08:41 -05:00
Aaron Piotrowski
e6fcb79392
Update ProtocolStreamReader
2019-02-06 16:08:41 -05:00
Matthew Brown
7249539fc6
Add a few return types and improve formatting
2019-02-06 16:08:41 -05:00
Matthew Brown
d18ef9c6e1
Add ideal stub return types
2019-02-06 16:08:41 -05:00
Aaron Piotrowski
b0d97843ce
Update Amp usage
...
Fixed a few errors and used byte-stream for reading and writing.
2019-02-06 16:08:41 -05:00
Matthew Brown
263a4c8cf1
Use Amp for handling language server event loop
2019-02-06 16:08:41 -05:00
Matthew Brown
dfe45e7d26
Fix #1290 - improve handling of more specific template
2019-02-06 15:56:40 -05:00
Matthew Brown
d45326759f
Fix #1287 - improve handling of templated intersection
2019-02-06 12:37:05 -05:00
Matthew Brown
822e840d0c
Prevent union in function template as
2019-02-05 17:39:11 -05:00
Matthew Brown
899dd16e8f
Be more strict about what can be a template as type
2019-02-05 17:26:34 -05:00
Matthew Brown
c83afc1af2
Fix element type inference for DOMNodeList
2019-02-05 13:34:59 -05:00
Matthew Brown
6d5c995458
Fix #1282 - allow generic self and static
2019-02-05 08:02:06 -05:00
Matthew Brown
6033345694
Fix #1281 - improve handling of mixed property array assignment
2019-02-05 00:36:57 -05:00
Brown
e8a157f8d7
Add missing second arg
2019-02-04 18:00:23 -05:00
Brown
27428b8743
Allow ArrayAccess::offsetGet to return null
2019-02-04 17:27:08 -05:00
Brown
bbf013bfb8
Fix #1279 - speed up analysis of large arrays
2019-02-04 16:06:14 -05:00
Matthew Brown
ab22634d23
Fix #1274 - fix parent:: call to templated method
2019-02-04 00:52:31 -05:00
Matthew Brown
f81f325c8e
Fix #1275 - improve combination of class-string types
2019-02-03 17:32:44 -05:00
Matthew Brown
261c44504e
Add more specific return type for #1275
2019-02-03 17:26:56 -05:00
Matthew Brown
d665f98fe7
Fix issue reconciling class strings
2019-02-03 17:25:22 -05:00
Matthew Brown
f06ed8bf84
Fix #1273 - don’t change type with unpacked var
2019-02-03 16:36:10 -05:00
Matthew Brown
e97d4f85ee
Break large CallAnalyzer funtions apart
2019-02-03 16:21:37 -05:00
Matthew Brown
194bb31221
Fix #204 - allow missing param types to be added with Psalter
2019-02-02 14:16:49 -05:00