Matthew Brown
da6209276f
Allow ability to memoize empty method calls based on config
2018-04-28 13:05:43 -04:00
Matt Brown
a0984cdaf1
Fix #697 - make missing objectlike fields an InvalidArgument
2018-04-27 17:10:57 -04:00
Matt Brown
4507962883
Fix possibly undefined issue
2018-04-25 14:45:51 -04:00
Matt Brown
8ec34ed4ed
Only cache effects hashes when there’s no change
2018-04-25 14:33:39 -04:00
Matt Brown
0c24c0cb20
Remove unused code
2018-04-25 13:12:42 -04:00
Matt Brown
9a1674bd0e
Remove checker cache optimisation (v2 only)
2018-04-25 11:52:24 -04:00
Matt Brown
d09d547718
Trigger InvalidDocblock when @return missing type
2018-04-25 11:18:05 -04:00
Matthew Brown
048a32e7b6
Also check incremental overflows ref #691
2018-04-24 23:12:01 -04:00
Matthew Brown
35725267f9
Fix #691 - Allow comparisons to float for integer results
2018-04-24 23:02:20 -04:00
Matthew Brown
19ccdbc08b
Remove unnecessary foreach
2018-04-24 21:15:33 -04:00
Matthew Brown
3e7e1b3020
Fix #694 - remove descendent vars when possibly reassigning
2018-04-24 21:02:07 -04:00
Matthew Brown
668cf2c0be
Fix #692 - remove text after the end of a method
2018-04-23 09:52:40 -04:00
Matthew Brown
2fabdf3353
Fix #314 - add a way to indicate @method list is comprehensive
2018-04-22 00:40:30 -04:00
Matthew Brown
1c7568e612
Fix #642 - allow @method to override existing methods
...
behind usePhpDocMethodsWithoutMagicCall="true"
2018-04-21 23:08:08 -04:00
Matthew Brown
8b50cdf315
Fix #632 - add support for @method annotations when method can’t be found
2018-04-21 22:44:54 -04:00
Matthew Brown
d02b148820
Fix #633 - support @method for magic __call methods
2018-04-21 22:13:10 -04:00
rightfold
10a90d2270
Use less obscure method for checking a string against many other strings
2018-04-21 16:04:03 -04:00
rightfold
5c908da55a
Check that __clone, __construct, __destruct signatures omit return types
...
PHP complains when you have a return type declared for these three methods.
2018-04-21 16:04:03 -04:00
Matt Brown
0882b9c0f9
Fix #687 - interpret unpacked arguments in array_push and array_unshift
2018-04-20 17:14:38 -04:00
Matt Brown
8d7c365e5f
Fix #679 - improve template param type checks
2018-04-20 10:52:23 -04:00
Matt Brown
1f3837d972
Fix #686 - allow undefined class inside class_exists call
2018-04-19 12:16:00 -04:00
Matt Brown
f3b579b06a
Fix #685 - ignore assignment in conditional
2018-04-19 11:58:51 -04:00
Matthew Brown
a5f639d879
Fix array type conversion
2018-04-18 23:49:09 -04:00
Matthew Brown
392f3194c0
Fix #684 - use getIterator return type for IteratorAggregate functions
2018-04-18 23:47:21 -04:00
Matt Brown
9099a0972b
Remove bad variable check
2018-04-18 12:10:49 -04:00
Matt Brown
4ee0298558
Always panic when two types can never be the same
2018-04-18 12:01:13 -04:00
Matt Brown
5b7d190640
Emit RedundantCondition when asserting two variables can never be equal
2018-04-17 15:39:09 -04:00
Matt Brown
5a2f6ff0e0
Fix #624 - change some innaccurate issue names
2018-04-17 14:07:02 -04:00
Matt Brown
6afaf5aae9
Make Psalm compatible with PHP Parser 4
2018-04-17 13:06:02 -04:00
Matt Brown
df5d369443
Fix #677 - handle get_class checks more accurately
2018-04-17 10:28:49 -04:00
Matt Brown
b28cc19fd2
Fix bitwise operations on strings
2018-04-16 18:19:18 -04:00
Matt Brown
55153f9542
Fix #676 - bitwise operators didn’t have int return type
2018-04-16 16:36:06 -04:00
Matt Brown
3cc549384f
Type explode more accurately
2018-04-16 16:03:04 -04:00
Matt Brown
3cf5345728
Improve codebase mixed coverage calculation by ignoring initial loops
2018-04-13 17:26:07 -04:00
Matt Brown
6ae39c84fc
Use more locals
2018-04-13 11:28:15 -04:00
Matt Brown
6502eba658
Don’t invalidate object vars after callmap functions
2018-04-13 11:24:59 -04:00
Radosław Kowalewski
15c1a82d8c
Few fixes to make tests pass on windows
...
* changed / to DIRECTORY_SEPARATOR in expected messages
* cahnged most occurences PHP_EOL to "\n" in tests and src
* added output buffering in test to avoid marking test as risky
2018-04-12 22:41:13 -04:00
Radosław Kowalewski
0ea053bda1
Fix detecting relative paths on windows
...
Fixes vimeo/psalm#655
2018-04-12 16:08:50 -04:00
Matthew Brown
f9b6027bbc
Fix relative path includes on windows
2018-04-11 20:56:11 -04:00
Matthew Brown
1d6e75b06e
Fix #662 - allow callable void return types to be widened
2018-04-11 20:29:16 -04:00
Matt Brown
6e6ae7aaa6
Only complain about redundant conditions when check_variables is true
2018-04-11 14:37:01 -04:00
Matt Brown
6426dbbf0e
Propagate array key updates after assertions to base array
2018-04-11 14:19:42 -04:00
Matt Brown
fe46e4e63d
Make tests a bit more specific
2018-04-10 15:47:04 -04:00
Matt Brown
8faa36c1cf
Improve closure type checking
2018-04-10 15:41:57 -04:00
Matt Brown
c721a7085a
Remove blank line
2018-04-10 14:03:36 -04:00
Matt Brown
fe033f1b6c
Fix #663 - infer array return types for closures
2018-04-10 13:05:31 -04:00
Matthew Brown
f15c26d7f4
Change how type impossibilities are treated to improve message types
2018-04-10 01:27:26 -04:00
Matthew Brown
5915718013
Fix #660 - always refer closure types
2018-04-09 22:00:36 -04:00
Matthew Brown
5f47374606
Fix indentation
2018-04-09 21:50:38 -04:00
Matt Brown
7640b00635
Only check functionlike arguments match if we know params
2018-04-09 18:49:11 -04:00
Matt Brown
47255fb19b
Fix array key check after direct assignment
2018-04-09 18:02:45 -04:00
Matt Brown
af63d28b56
isset always returns bool
2018-04-09 10:20:18 -04:00
Matt Brown
cf6326f5e6
Fix #658 - empty always returns bool
2018-04-09 10:19:23 -04:00
Matthew Brown
7e3a1ec9c3
Add support for checking callable/closure param types
...
Fixes #580
2018-04-08 12:03:35 -04:00
Matthew Brown
3fe9a0606e
Fix #654 - warn about MixedArgument when inferredType property does not exist
...
And handle str_replace more leniently when args unknown
2018-04-07 15:16:46 -04:00
Matthew Brown
0f0f405b9f
Allow mixed property assignment when the user wants it
...
Fixes #652
2018-04-07 12:13:30 -04:00
Matthew Brown
3771ea206c
Fix #648 - stop scanning when encountering a duplicate class
2018-04-07 11:38:41 -04:00
Matt Brown
60c6bb4021
Fix #650 - be more judicious about inserting mixed into places
2018-04-06 18:28:22 -04:00
Matt Brown
c932ed7764
Fix #651 - allow Psalm to understand assertions on properties of array objects
2018-04-06 16:23:10 -04:00
Matt Brown
6abbc23947
Catch type exception when fixing local type
2018-04-05 17:18:49 -04:00
Matt Brown
e97750c761
Check for empty values properly
...
Ref #647
2018-04-05 14:28:33 -04:00
Matt Brown
4927dfd337
Fix issue with InvalidArrayOffset from falsable
2018-04-05 13:57:01 -04:00
Matt Brown
24f307d568
Fix #645 - add isa- prefix for strings as well as class constants
2018-04-05 12:03:36 -04:00
Matt Brown
1282f74931
Allow coercion from generic array to objectlike with possible keys
2018-04-04 18:01:53 -04:00
Matthew Brown
03b3a764e3
Fix #641 - allow is_a to operate on strings as well
2018-04-03 23:14:23 -04:00
Matthew Brown
4552e69ef2
Allow classes to be instantiated by their name only
...
Ref #641
2018-04-03 22:20:00 -04:00
Matthew Brown
1395299e28
Fix #637 - allow int|string array key types to be compared to mixed
2018-04-02 22:40:29 -04:00
Matthew Brown
4ff7db09f9
Fix var_export return type
...
Fixes #636
2018-04-02 22:19:58 -04:00
Matthew Brown
ef37f0cfe8
Fix #626 - check __invoke methods
2018-03-31 18:57:13 -04:00
Matthew Brown
75e59f29ea
Check as many autoloaded files as possible
...
and ignore reflected function docblocks - fixes #629
2018-03-30 20:03:56 -04:00
Matthew Brown
6a6d6465f5
Fix #619 - don’t use capitalised letters to discriminate classes
2018-03-30 19:04:21 -04:00
Matthew Brown
c8c216edb2
Fix #610 - add slightly hacky check for multiple callmap options
2018-03-30 18:51:59 -04:00
Matthew Brown
2a544c3076
Fix #560 - ignore @param $var annotations
2018-03-30 17:46:12 -04:00
Matt Brown
fd9e783a37
Emit InvalidDocblock for bad static keyword in @var
...
Ref #623
2018-03-27 11:34:48 -04:00
Matthew Brown
44cccb5b3d
Fix build
2018-03-27 01:05:11 -04:00
Matthew Brown
fb802540d6
Fix variadic format cc @TysonAndre and allow callable param types
...
Ref #580
2018-03-27 00:12:41 -04:00
Matthew Brown
58115599a1
Add support for callable(...) syntax
...
Ref #580
2018-03-26 22:13:10 -04:00
Matthew Brown
871a91c850
Add debug-by-line option
2018-03-26 09:08:55 -04:00
Matt Brown
f5ef864168
Improve checks to prevent breaking existing typehints when running psalter
2018-03-23 16:34:45 -04:00
Matthew Brown
7637eb5075
Allow possibly undefined object-like vars to not cause problems
2018-03-23 01:13:46 -04:00
Matthew Brown
5ff6f27178
Fix #615 - numeric-string is always still a string
2018-03-22 21:48:26 -04:00
Matt Brown
cc3aafe4c4
Improve intersection type parsing
2018-03-22 17:55:36 -04:00
Matthew Brown
ccbe9980f5
Fix issue with nested trait methods
2018-03-21 17:39:01 -04:00
Matthew Brown
49c4dd8a5d
Fix trait method aliasing
2018-03-21 16:55:31 -04:00
Matthew Brown
c2002d0250
Add intersection iteration test
2018-03-21 12:21:46 -04:00
Matthew Brown
1f57876e48
Allow extract array to be passed by ref
2018-03-21 11:14:05 -04:00
Matthew Brown
bc0c4322d5
Allow object-like with all optional vars to be compared to empty array
2018-03-21 10:46:21 -04:00
Matthew Brown
452fd2e7c9
Make UndefinedClass an explicit class-related issue
2018-03-21 10:17:57 -04:00
Matthew Brown
49820b06dd
Prevent variadic args disrupting required closure param count
2018-03-21 09:04:07 -04:00
Matthew Brown
9404de699d
Allow list vars to have array keys
2018-03-21 08:48:30 -04:00
Matthew Brown
be72423980
Check for magic __call when analysing callables
2018-03-21 00:13:57 -04:00
Matthew Brown
7a5d4b8516
Fix the right thing
2018-03-20 23:55:26 -04:00
Matthew Brown
75e76eb327
Perform more granular scan for PossiblyInvalidPropertyAssignmentValue
2018-03-20 23:44:26 -04:00
Matthew Brown
f47012823e
Fix incorrect issue type emitted for static properties
2018-03-20 23:19:26 -04:00
Matthew Brown
b634e1a1b7
Add more refined treatment of InvalidIterator
2018-03-20 22:59:22 -04:00
Matthew Brown
5384f193d1
Allow class and method issues to be suppressed by their identifiers
...
Ref #603
2018-03-20 22:36:03 -04:00
Matthew Brown
837f5d7096
Fix #594 - support intersection types (and catch errors)
2018-03-20 20:56:33 -04:00
Matt Brown
24490aac0e
Fix #609 - fix callable coercion in reconciliation step
2018-03-20 13:24:16 -04:00
Matthew Brown
d17058e7d5
Fix #608 - only check callable type if string/array is not also there
2018-03-20 08:58:05 -04:00
Matthew Brown
8dcb878af4
Fix #606 - fatal error when evaluating array_key_exists
2018-03-19 19:14:55 -04:00