Matthew Brown
fb9e9bea32
Fix const reference in current context
2019-03-03 16:43:24 -05:00
Matthew Brown
472cdf6bea
Fix #1379 - allow @param-out to change type
2019-03-03 15:11:09 -05:00
Matthew Brown
82e6876011
Fix #1397 - fix get_class behaviour for new instances
2019-03-02 18:02:11 -05:00
Matthew Brown
ef0abf1c30
Fix #1411 - allow covariance on extended templates
2019-03-02 16:31:34 -05:00
Matthew Brown
becef300b1
Add test for #1422
2019-03-02 15:29:43 -05:00
Matthew Brown
f9b1a63146
Fix #1421 - variadic params are extra
2019-03-02 15:26:18 -05:00
Matthew Brown
5e61f198e1
Fix #1419 - allow checks against empty arrays
2019-03-02 15:18:29 -05:00
Matthew Brown
efbcf7dc5b
Fix #1417 - store root file path when scanning for manipulations
2019-03-02 15:07:26 -05:00
Matthew Brown
4ba15ec18d
Flip abstract trait analysis implementation checks
...
Fix #1414
2019-03-02 14:17:26 -05:00
Bruce Weirdan
9bdc9f774f
More provider typing
2019-03-02 08:43:19 -05:00
Bruce Weirdan
3a2c457d87
More tests fixed
2019-03-02 08:43:19 -05:00
Bruce Weirdan
ec85096c96
Fixed identified issues
2019-03-02 08:43:19 -05:00
bugreportuser
65102b8088
Fix non-empty-array @param in namespace ( #1416 )
2019-03-02 08:35:50 -05:00
Matthew Brown
5c76ab35c8
Allow properties to be set regardless of visibility
2019-03-01 17:30:55 -05:00
Matthew Brown
619590aa71
Fix parsing of template of type with spaces
...
Fixes #1406
2019-03-01 09:20:59 -05:00
Matthew Brown
317f790bde
New plugin hooks ( #1405 )
...
* Add a bunch of new hooks
* Add more integrations
* Add some broken tests
* Add more things
* Fix remaining interfaces
* Suppress proper issue
* UndefinedMethod should not stop analysis
* Add handlers for two custom method return types
2019-03-01 08:57:10 -05:00
Matthew Brown
d1cf9d61ba
Fix #1398 - improve casting rules for resource
2019-03-01 00:50:22 -05:00
Matthew Brown
b3c5120d72
Fix #1403 - warn about duplicate templates
2019-02-28 23:43:55 -05:00
SignpostMarv
87021c315f
fixing some tests under windows again (following on from #1292 )
2019-02-28 17:53:36 -05:00
Brown
f8c2b2d81a
Fix #1399 - allow literal comparison to scalar
2019-02-27 16:21:23 -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
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
624789f6c0
dropped unused var
2019-02-26 01:16:22 -05:00
Bruce Weirdan
9c5ee3e9d6
Added AfterCodebasePopulated hook registration
2019-02-26 01:16:22 -05:00
Bruce Weirdan
3f56f468dc
added test
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
19a9ff4bcf
Added custom storage metadata
2019-02-25 10:19:31 -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
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
51493b552a
Add @psalm-property and @psalm-method override tests
2019-02-23 11:04:08 -05:00
bugreportuser
68a135f434
Allow @psalm-property and @psalm-method
2019-02-23 11:04:08 -05:00
Matthew Brown
6671e0dc7c
Fix #1382 - flag unused docblocks
2019-02-23 11:02:04 -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
Brown
154e1fa38b
Fix #1375 - improve treatment of dynamically-declared namespaces
2019-02-21 18:19:12 -05:00
Brown
41b133178a
Improve handling of count comparisons
2019-02-21 17:17:10 -05:00
Brown
0b7d4e4aad
Add slightly hacky support for param names in callables
2019-02-21 16:00:18 -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
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
cd23a19931
Allow concat for define first arg
2019-02-20 10:55:36 -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
709a5c31da
Allow bitwise or ops to change type
...
Ref #1340
2019-02-18 12:53:55 -05:00
Matthew Brown
12f1ffca11
Fix issue reconciling mixed vars inside loop
2019-02-18 11:39:05 -05:00
Bruce Weirdan
8408effe57
Dropped unused uses
2019-02-17 13:17:45 -05:00
Matthew Brown
40a91eab6e
Fix #1339 - no crash when using self/static/parent in closure
2019-02-17 13:14:59 -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
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
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
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
8bcb3a76e7
Add callable class
2019-02-11 01:57:28 -05:00
Matthew Brown
7fdc226ac5
Always remove callable type
2019-02-11 01:44:07 -05:00
Matthew Brown
867ea1fa34
Fix #1320 - allow iterable comparison
2019-02-10 23:51:26 -05:00
Matthew Brown
dafc5feb5a
Limit callable::__invoke test to PHP71
2019-02-10 16:45:36 -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
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
Matthew Brown
79d468bf66
Make return type docblock-based
2019-02-08 18:08:53 -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
88b4f8230c
Remove parent call
2019-02-07 19:01:33 -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
a6755cc523
Fix default test versions to 7.3
2019-02-07 15:27:43 -05:00
Matthew Brown
ed4ed957c8
Use more specific templated argument
2019-02-07 15:21:34 -05:00
Matthew Brown
dedb3625b6
Default tests to use PHP 7.3 standards
2019-02-07 14:08:35 -05:00
Matthew Brown
d9e972d2f0
Prevent issues being forgotten when another error crops up
2019-02-07 13:56:00 -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
c2dedd6e6c
insufficient type-hinting to indicate size of chunk :(
2019-02-06 16:43:22 -05:00
SignpostMarv
1f3faff01f
not sure if this is the best place to add the test, but this is the code that fails from this example: https://getpsalm.org/r/11ec7409c0 under d453267
2019-02-06 16:43:22 -05:00
Matthew Brown
dfe45e7d26
Fix #1290 - improve handling of more specific template
2019-02-06 15:56:40 -05:00
SignpostMarv
96ef708965
PHP_EOL is sometimes the wrong EOL under windows
2019-02-06 14:29:10 -05:00
SignpostMarv
e587a80181
symlink perms are not available by default under windows
2019-02-06 14:29:10 -05:00
SignpostMarv
5c49dfd746
adding PHP_EOL to tests that fail under windows
2019-02-06 14:29:10 -05:00
SignpostMarv
4a56688800
adding DIRECTORY_SEPARATOR to tests that fail under windows
2019-02-06 14:29:10 -05:00
Matthew Brown
d45326759f
Fix #1287 - improve handling of templated intersection
2019-02-06 12:37:05 -05:00
Matthew Brown
020430c66f
Recover better from union type errors in template names
2019-02-05 17:43:46 -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
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
f06ed8bf84
Fix #1273 - don’t change type with unpacked var
2019-02-03 16:36:10 -05:00
Matthew Brown
194bb31221
Fix #204 - allow missing param types to be added with Psalter
2019-02-02 14:16:49 -05:00
Matthew Brown
3a01afbe0a
Refine inferred type when possible
2019-02-02 12:10:52 -05:00
Matthew Brown
db89b3cc3f
Add initial support for fixing MissingParamType
2019-02-02 11:28:48 -05:00
Bruce Weirdan
36343b07ce
Dropped usage of now deprecated assertArraySubset
2019-02-01 17:09:37 -05:00
Brown
533b92e15a
Fix #1269 - fill in object type
2019-02-01 14:13:21 -05:00
Brown
8b65acf15b
Make return type mismatch more clear
2019-02-01 10:55:28 -05:00
Matthew Brown
509709d6bc
Fix #1267 - flesh out self static property types
2019-02-01 08:59:01 -05:00
Andrii
21d383d6c6
🐛 #1225 Allow use lead asterisk wildcard in referenceClass
2019-02-01 07:59:44 -05:00
Matthew Brown
79544eb289
Fix comment analysis for callable(): returntype
2019-02-01 07:50:48 -05:00
Matthew Brown
ac79e9a311
Fix #1263 - return proper class string
2019-01-31 21:06:21 -05:00
Matthew Brown
0be6aac30c
Fix #1262 - fix object check redundant condition
2019-01-31 20:31:40 -05:00
Brown
e384fb0328
Fix premature property type
2019-01-31 18:05:21 -05:00
Brown
c5a0a3df86
Fix yielding from iterable
2019-01-31 17:58:53 -05:00
Brown
fd88f00526
Fix a few small bugs
2019-01-31 17:48:48 -05:00
Brown
2054e3753f
Fix #1260 - improve handling of ArrayAccess assignment
2019-01-31 12:45:47 -05:00
Brown
c195e8fd21
Add more nuanced analysis of array access fetch
2019-01-30 15:40:37 -05:00
Brown
d52fd70fd6
Fix invalid inheritance for SplObjectStorage
2019-01-30 13:48:05 -05:00
Brown
8c27bd77f6
Fix #1259 - add support for SplObjectStorage type params
2019-01-30 13:03:22 -05:00
Brown
e060ec35de
Fix #1258 - allow static method returns
2019-01-30 11:44:12 -05:00
Brown
661c7ee707
Fix #1256 - detect illegal closure use
2019-01-30 11:36:21 -05:00
Matthew Brown
bfb2a5c19e
Fix #1257 - transform docblock types for magic methods to something more meaningful
2019-01-30 09:46:23 -05:00
Brown
0bb5143efd
Fix #1254 - merge literal and class-strings types into string
2019-01-29 10:34:31 -05:00
Brown
9edbae2bdc
Fix possible fatal when builtin function is called in array_filter
2019-01-28 17:54:50 -05:00
Brown
819489e68d
Add method that reflection doesn’t know exists
2019-01-28 17:09:23 -05:00
Brown
3e4c63eb9a
Fix template extension in grandchildren
2019-01-28 16:56:42 -05:00
Brown
f33415827e
Add checks for rounded values
2019-01-28 11:57:49 -05:00
Brown
b5059f45a0
Allow users to ignore missing ignorefiles
2019-01-28 11:50:18 -05:00
Matthew Brown
45058ea494
Fix possible crash when class-string class doesn’t exist
2019-01-28 01:12:41 -05:00
Matthew Brown
09ee6e3d13
Fix #1253 - prevent ints from coercing to literal floats
2019-01-27 23:21:54 -05:00
Matthew Brown
081ba4b204
Fix #1072 - add support for @use SomeTrait<T>
2019-01-27 23:12:40 -05:00
Matthew Brown
f67bab6d52
Restrict template-extends to actual extends
2019-01-27 21:00:27 -05:00
Matthew Brown
89999fd554
Add suppport for float enums
...
Fixes #1099
2019-01-27 18:34:13 -05:00
Matthew Brown
672b768cc5
Fix null order
2019-01-27 17:27:12 -05:00