1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-12 17:27:28 +01:00
Commit Graph

2105 Commits

Author SHA1 Message Date
Matt Brown
53ff05783c Clean up code slightly 2018-05-08 17:43:26 -04:00
Matt Brown
4f678f5f99 Fix bad comparisons 2018-05-08 17:42:02 -04:00
Matt Brown
03ea65cff8 Don’t complain about false values on properties when we don’t care 2018-05-08 16:57:16 -04:00
Matt Brown
bc17d23788 Fix mixed empty checks 2018-05-08 16:34:08 -04:00
Bruce Weirdan
2afe364ee0 simplexml callmap update (#723)
* simplexml callmap update

fixes vimeo/psalm#722 and includes a number of manual updates to
simplexml function/method signatures (based on php.net docs)

* minor fixes

- s/qname/name/
- explicit void return type for `SimpleXMLElement::addAttribute()`
2018-05-08 13:50:32 -04:00
Matt Brown
0eda76b742 Fix strict reconciliation of bools 2018-05-07 18:09:40 -04:00
Matt Brown
3c9e42f884 Fix string assertion for ternaries 2018-05-07 17:52:18 -04:00
Matt Brown
f858924b60 Fix erroneous string matching after oring 2018-05-07 17:40:16 -04:00
Matt Brown
2299cecd23 Fix strict isset reconciliation 2018-05-07 17:15:27 -04:00
Matt Brown
6460d907f9 Improve array handling when offsets hard to define 2018-05-07 16:22:04 -04:00
Matt Brown
091d13b73f Fix reconciliation of non-isset array vars 2018-05-07 16:00:56 -04:00
Matt Brown
c6ed1b0458 Fix bad offset 2018-05-07 15:47:04 -04:00
Matt Brown
c0729a02cd Fix remaining issues with logic checks 2018-05-07 14:52:45 -04:00
Matthew Brown
61aeea6375 Fix whole bunches of things 2018-05-07 01:26:06 -04:00
Matthew Brown
3b9b4a8a6f Improve binary op function layout 2018-05-06 12:11:40 -04:00
Matthew Brown
c31f787f7c Convert DNF conditions to CNF 2018-05-06 12:11:40 -04:00
Matthew Brown
00838d19b5 Fix #534 - fix bug in type simplification 2018-05-06 12:05:55 -04:00
Matthew Brown
04bd492360 Fix erroneous scope resolution 2018-05-05 20:52:10 -04:00
Matthew Brown
8d8fdad924 Always set array offset type 2018-05-05 17:50:19 -04:00
Matthew Brown
21261172a8 Fix #713 - support offsets of known array types 2018-05-05 17:30:18 -04:00
Matthew Brown
0181fce46f Fix #711 - concat ops contribute to loop map 2018-05-05 16:17:54 -04:00
Matthew Brown
85c69f1335 Make sure div operations return GMP too 2018-05-05 13:14:59 -04:00
Matthew Brown
c39af03a01 Allow GMP to be converted to string 2018-05-05 13:04:27 -04:00
Matthew Brown
3718bd5c61 Fix GMP arithmetic operations 2018-05-05 12:59:30 -04:00
Matthew Brown
1a4ddc7cdd
Support value types (#707)
* Add first idea

* Add initial count experiments

* Remove false positives

* Fix getId to support changes in conditionals

* Add better tests

* Strip types when not exists

* Fix array offsets

* More fixes

* Add class constant value types

* Clone constants everywhere

* Don’t complain unnecessarily

* Be more lenient with possibly invalid __sets

* Fix mixed issues

* Fix bug concerning orred string equality

* Remove unnecessary casts
2018-05-03 13:56:30 -04:00
Matt Brown
521237dc56 Fix #705 - don’t be so strict about undefined constants 2018-05-03 13:20:42 -04:00
Matt Brown
f2ff727649 Fix #706 - don’t namespace & 2018-05-03 13:15:16 -04:00
Matt Brown
ae49558de6 Ignore MissingConstructor a little less 2018-05-03 11:38:27 -04:00
Matthew Brown
7ccc17cd98 Fix #324 - improve undefined array handling 2018-05-02 20:10:08 -04:00
Matthew Brown
fa95dede08 Fix #455 - allow unset to alter object-like arrays 2018-05-02 19:39:11 -04:00
Matt Brown
4513d24b7d If there’s any overlap in types use PossiblyInvalidArgument 2018-05-01 14:27:05 -04:00
Matthew Brown
b36b50784d Fix #703 - prevent undefined param offset 2018-04-30 22:18:41 -04:00
Matthew Brown
15e1003c37 Warn about impossible empty 2018-04-30 22:13:13 -04:00
Matt Brown
6e67030925 Fix #702 - prevent bad array to iterable cast 2018-04-30 13:17:09 -04:00
Matthew Brown
acacde173e Fix highlight_string return type default 2018-04-30 01:49:55 -04:00
Matthew Brown
59bbf6f896 Allow Exception::getPrevious to return null 2018-04-30 00:44:43 -04:00
Matthew Brown
6ad2184b7e Improve highlight_string/highlight_file signatures 2018-04-30 00:31:27 -04:00
Matthew Brown
1946bc0085 Allow resource to be cast to string 2018-04-30 00:19:35 -04:00
Matthew Brown
99da371ac4 Move memoisation after callmap branch 2018-04-28 13:49:27 -04:00
Matthew Brown
496256c2a5 Make memoisation more universal 2018-04-28 13:49:21 -04:00
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
6b3759a266 Fix #699 - prevent stubs from overriding known functions 2018-04-27 15:00:22 -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
a409b3c32a Remove unnecessary echo 2018-04-25 11:53:10 -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
e2400920b9 Fix #693 - add @TysonAndre’s fix for atomic type checks 2018-04-24 21:27:31 -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
21871bd8d4 Remove PHP 5 dead code cc @TysonAndre 2018-04-24 07:08:14 -04:00
Matthew Brown
09082ddf52 Fix #695 - fix PHP parser cache version 2018-04-24 07:07:04 -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
Matthew Brown
da69e60cf3 Don’t error on existing Psalm configs cc @ostrolucky 2018-04-21 19:05:26 -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
131cab2528 Remove bad var_dump 2018-04-20 15:53:19 -04:00
Matt Brown
8b9753a235 Fix parsing of nested callable without args 2018-04-20 15:22:48 -04:00
Matt Brown
8d7c365e5f Fix #679 - improve template param type checks 2018-04-20 10:52:23 -04:00
Matt Brown
a25a989c12 Prepare v2 dev release 2018-04-19 17:29:07 -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
41e2d9ef58 Bind callable ): stronger than | 2018-04-18 19:00:08 -04:00
Matt Brown
6a8fcaef56 Break compatibility with EventBuffer <= 1.5 (5+ years old) 2018-04-18 14:56:33 -04:00
Matt Brown
8c34c3d653 Support empty callable returning callable 2018-04-18 13:23:48 -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
b9f55b7b8b Fix #680 - add intersection to cloned type 2018-04-18 10:59:46 -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
87be0b5863 Change die($message) to explicit exit(1) 2018-04-17 11:48:29 -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
02a5d22449 Fix #674 - remove summary for full Psalm run if not in console mode 2018-04-16 14:05:46 -04:00
François Kooman
0c815c7bf4 fix return type of Sodium\crypto_sign_open (sync with sodium_crypto_sign_open) 2018-04-16 14:00:43 -04:00
Matthew Brown
7345a44494 Fix callable parse issue 2018-04-15 18:16:31 -04:00
Matthew Brown
50f4ee95e8 Set from docblock before queuing params for scanning 2018-04-14 13:41:25 -04:00
Matthew Brown
8e07119e57 Fix #673 - don’t store hydration failures when exhuming 2018-04-14 13:39:30 -04:00
Radosław Kowalewski
eab7f7b68b Suppress MixedArgument 2018-04-14 10:45:05 -04:00
Radosław Kowalewski
88bf8e284c Configuration fallback to psalm.xml.dist file
Closes vimeo/psalm#644
2018-04-14 10:45:05 -04:00
Matt Brown
21b74ae725 Turn useAssertForType on by default (was off) 2018-04-13 17:35:56 -04:00
Matt Brown
3cf5345728 Improve codebase mixed coverage calculation by ignoring initial loops 2018-04-13 17:26:07 -04:00
Bruce Weirdan
11f239f6cb dropped $link params that shouldn't be there for OO interface 2018-04-13 14:55:34 -04:00
Bruce Weirdan
ea748c5e83 dropped mysqli properties (these should not be in the CallMap) 2018-04-13 14:55:34 -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
Matt Brown
564cebbaad Fix #669 - improve signatures of mysql 2018-04-13 10:51:18 -04:00
Matt Brown
8fdd827e0d Fix scope leaking from autoloader 2018-04-13 10:32:08 -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
e58274acaa Fix #665 - callmap for SplFileObject::fgetcsv 2018-04-11 15:11:14 -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
Matt Brown
9bdf9eefd3 Revert changes to sorting, force int return types for comparison functions 2018-04-10 12:38:29 -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
d3fa972fab Fix uksort signature too 2018-04-09 16:55:29 -04:00
Matt Brown
7a7bc26ccd Allow custom sorting methods to only return true/false 2018-04-09 16:54:04 -04:00
Matt Brown
6eabdf326d Fix display of closure objects 2018-04-09 16:45:54 -04:00
Matt Brown
2b9a2d36cf Don’t allow non-existent vars to be overridden 2018-04-09 14:32:22 -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
bf7bf1ab3c Make pcntl_signal sig clearer 2018-04-08 13:08:28 -04:00
Matthew Brown
0b95f1017e Fix issues with callmap callable types 2018-04-08 12:57:56 -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
3f4083eac8 Remove blank line 2018-04-08 10:26:04 -04:00
Matthew Brown
797cab22f8 Fix support for Closure(int):int annotation 2018-04-08 10:02:41 -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
81f167df65 Remove bad semicolon 2018-04-05 14:40:41 -04:00
Matt Brown
e97750c761 Check for empty values properly
Ref #647
2018-04-05 14:28:33 -04:00
Matt Brown
6d572096d6 Prohibit bad characters from types 2018-04-05 14:11:57 -04:00
Matt Brown
4927dfd337 Fix issue with InvalidArrayOffset from falsable 2018-04-05 13:57:01 -04:00
Matt Brown
0b268eb602 Allow scalars to be empty 2018-04-05 12:11:58 -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
Matthew Brown
78d5adb17d Make key work with typed arrays 2018-04-05 00:21:14 -04:00
Matt Brown
1282f74931 Allow coercion from generic array to objectlike with possible keys 2018-04-04 18:01:53 -04:00
Matt Brown
4065fa894f Add numeric to Psalm reserved types 2018-04-04 14:42:23 -04:00
Matt Brown
b4fba8f805 Allow capitalised reserved words 2018-04-04 12:39:05 -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
Matt Brown
f679900028 Remove aggregate_* methods c/o @weirdan 2018-04-03 11:55:13 -04:00
Scott
35ca719c07 Fix callmap for ext/hash fucntions
Fixes #627 -- until PHP < 7.2 support can be dropped, we need to be able to resolve `resource` or `HashContext`.
2018-04-03 11:53:02 -04:00
Jon Ursenbach
f51a5f79ed pow() accepts int|float, not just float. 2018-04-03 11:52:38 -04:00
Matt Brown
fef56c7633 Fix #639 - add scalar to psalm-recognised types 2018-04-03 11:24:23 -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
Matt Brown
734b6915db Fix #635 - type combinations should copy over possibly undefined flag 2018-04-02 14:36:33 -04:00
Matthew Brown
faa2d6f2e1 Fix #634 - prevent prefixing objectlike keys with namespaces 2018-04-02 00:39:59 -04:00
Matthew Brown
ef37f0cfe8 Fix #626 - check __invoke methods 2018-03-31 18:57:13 -04:00
Matthew Brown
ca8f2626a2 Remove extraneous function reflection 2018-03-30 20:08:12 -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
51055eb17e Add self and static to reserved word list 2018-03-30 19:20:38 -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
Matthew Brown
17b27b31e8 Fix erroneous input/output lines 2018-03-29 10:26:26 -04:00
Matthew Brown
7a0c7f4d1e Improve handling of ||
Ref #630
2018-03-29 02:20:19 -04:00
Matt Brown
3213695c95 Fix off-by-one error
Fixes #625
2018-03-27 14:43:39 -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
5783611366 mixify parse_url return type until I can get a handle on it 2018-03-27 08:24:48 -04:00
Matthew Brown
c0c5966b4c Fix callable() parsing 2018-03-27 08:21:48 -04:00
Matthew Brown
504a057071 Trap return type parse issues in fixUpLocalType 2018-03-27 08:07:44 -04:00
Matthew Brown
843a8a4e40 Make CallMap have compatible signatures 2018-03-27 08:02:08 -04:00
Matthew Brown
3ef7073862 Add callmap updates from Phan 2018-03-27 01:05:37 -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
7d7f5d00a1 Prevent duplicate properties 2018-03-26 23:37:35 -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
Matthew Brown
cad60619c2 Fix callmap signatures from @weirdan 2018-03-25 08:54:05 -04:00
Tyson Andre
04d4c719f9 Sort the call map
Psalm's function signature map was based on an old ad hoc sorting order
(Possibly the unix sorting utility?)
Instead, sort by `strtolower(str_replace("'", "\x0", $functionKey))`
(To group classes together, and global functions together, and alternates together,
instead of mixing them)
`phan/phan/internal/internalsignatures.php sort` was used to perform this
sorting (It's hardcoded to expect src/Phan/Internal/FunctionSignatureMap.php, though)

Other changes:

- Add signature for `_()`, which is an alias of gettext()
  https://secure.php.net/manual/en/function.gettext.php#refsect1-function.gettext-notes
- etsy/phan -> phan/phan
- Mention that __construct has type void, not the class name.
- nit: Change __halt_compiler to void.
2018-03-25 08:50:04 -04:00
Matthew Brown
74aa376ec7 Fix #617 - catch exception on bad square brackets 2018-03-24 21:02:44 -04:00
Matt Brown
f5ef864168 Improve checks to prevent breaking existing typehints when running psalter 2018-03-23 16:34:45 -04:00
Matt Brown
06e850867d Allow combined keys to be possibly undefined 2018-03-23 13:14:00 -04:00
Matthew Brown
a4a618c9e5 Fix rules regarding always-defined object-like properties 2018-03-23 01:36:56 -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
a96ce89e9f Allow arbitrary bracketing of types 2018-03-22 22:28:06 -04:00
Matthew Brown
c54850aa5b Revert changes to Type.php 2018-03-22 21:52:36 -04:00
Matthew Brown
5ff6f27178 Fix #615 - numeric-string is always still a string 2018-03-22 21:48:26 -04:00
Matthew Brown
c8fe9e89f3 Fix parsing of array{a:int}[]
Fixes #614
2018-03-22 21:21:04 -04:00
François Kooman
b6499c33ed fix ldap_bind parameters, allow null for bind_rdn and bind_password 2018-03-22 19:09:51 -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
Matthew Brown
3f90bceabf Use objects for type parsing 2018-03-20 20:26:58 -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
Matthew Brown
8ce46aabd2 Allow intersection types in comments 2018-03-18 20:46:45 -04:00
Matthew Brown
8b102d891c Allow intersection types in callable args 2018-03-18 20:29:41 -04:00
Matthew Brown
5068981902 Show info suppression instructions in output 2018-03-18 18:27:10 -04:00
Matthew Brown
303e3bbf0f Fix #590 - add error count to stdout 2018-03-18 18:04:50 -04:00
Matthew Brown
cc9ffb36d9 Actually suppress child issues 2018-03-18 17:26:28 -04:00
Matthew Brown
0defe84e01 Allow use of $argv and $argc in function use statements 2018-03-18 17:11:14 -04:00
Matthew Brown
80cf80dbda Reduce number of InvalidOperand issues further 2018-03-18 16:58:54 -04:00
Matthew Brown
e0bdfeb625 Fix erroneous message for invalid right operands 2018-03-18 16:46:26 -04:00
Matthew Brown
d7a585160f Add more granular error messages for invalid operands 2018-03-18 16:39:34 -04:00
Matthew Brown
33be97b1f8 Check for to-string casts in strict operands mode 2018-03-18 14:42:23 -04:00
Matthew Brown
f5ee373244 Fix build 2018-03-18 14:23:11 -04:00
Matthew Brown
4b014eaee1 Fix #600 - don’t implicitly convert object name to string 2018-03-18 14:16:47 -04:00
Matthew Brown
6b793db5c6 Allow some intersection types
Fixes #600 Ref #594
2018-03-18 13:57:28 -04:00
Matthew Brown
025b7049fd Allow $argv/$argc to be accessed from namespace 2018-03-18 10:38:08 -04:00
Matthew Brown
28522c4f94 Fix #588 - allow anonymous classes to call $this functions 2018-03-18 01:07:14 -04:00
Matthew Brown
5575ead4b2 Make get_called_class and get_class return class-string pseudotype
Fixes #584
2018-03-17 22:11:16 -04:00
Matthew Brown
2e0aded816 Fix issue with empty checks and array_key_exists for property keys 2018-03-17 19:28:01 -04:00
Matthew Brown
b0b3c9287e Fix array_key_exists calls on possibly undefined objectlike 2018-03-17 19:03:46 -04:00
Matthew Brown
e61815bb72 Fix #458 - fully support optional array keys 2018-03-17 18:05:50 -04:00
Matthew Brown
4175d1a887 Add PossiblyUndefinedVariable warning when using possibly undefined array key 2018-03-17 17:35:36 -04:00
Matthew Brown
61af2a924c Fix #575 - generated possibly-undefined keys when scanning objectlike return types
Ref #458
2018-03-17 16:53:11 -04:00
Matthew Brown
91955f67d0 Fix return 2018-03-17 15:28:41 -04:00
Matthew Brown
3578c49bf2 Add test for #587 2018-03-17 15:02:25 -04:00
Matthew Brown
a51e67018e Fix #587 - check RHS of assignments for variadic receptors 2018-03-17 15:01:13 -04:00
Matthew Brown
95b5f205c4 Fix #587 - scan all functions for func_get_args 2018-03-17 09:22:28 -04:00
Matthew Brown
eb3750d8f3 Remove unnecessary @var annotations 2018-03-17 00:19:55 -04:00
Matthew Brown
10d18481a2 Add syntax support for optional array types
Ref #458
2018-03-16 23:37:10 -04:00
Matt Brown
f806e16c10 Fix #516 - never show issues when finding references 2018-03-16 11:15:07 -04:00
Matt Brown
d6e0708e88 Fix #577 - allow int in second param of strpos 2018-03-15 17:32:03 -04:00
Matt Brown
e5e0c56abc Don’t remove clauses on mixed, just substitute for wedges 2018-03-15 16:40:22 -04:00
Matt Brown
651b375c62 Fix #579 - improve checks for meta-type negation 2018-03-15 14:25:04 -04:00
Matt Brown
a253463ba8 Use strings for numeric string key offsets 2018-03-15 10:16:11 -04:00
Matthew Brown
d0fc48cfaf Remove unnecessary whitespace 2018-03-15 00:37:08 -04:00
Matt Brown
822d0a116e Reflect all numeric types passed to abs
Fixes #576
2018-03-14 18:05:36 -04:00
Matt Brown
92ada48433 Allow the iterable pseudo-type to be treated as array|Traversable
Fixes #574
2018-03-14 17:50:55 -04:00
Matt Brown
d9ab5e62d6 Prevent unnecessary warnings when checking trait-required methods 2018-03-14 10:51:13 -04:00
Matt Brown
0bd229a86f Add better checks for trait-related fatal errors 2018-03-13 18:12:05 -04:00
Bruce Weirdan
1dfd103aa2 ReflectionExtension type refinements
Added more detailed return types for ReflectionExtension methods, fixed
`isPersistent` method name
2018-03-13 13:53:40 -04:00
Matt Brown
0637e02a6d Fix build bug 2018-03-13 13:50:53 -04:00
Matt Brown
52b6a5cbde Fix #571 - fix buggy handling of packed vars 2018-03-13 13:50:41 -04:00
Matt Brown
ef35cfc6fe Fix #566 - check for abstract methods inheriting from non-abstract ones 2018-03-13 12:52:00 -04:00