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

115 Commits

Author SHA1 Message Date
Matthew Brown
e6bd30cc0b Allow closures to contain templated @var docblocks
Fixes #1865
2019-07-06 00:18:53 -04:00
Matthew Brown
cd33430616 Fix #1885 - allow comparison to templated class string 2019-07-05 22:57:38 -04:00
Matthew Brown
b4f03abca6 Fix #1886 - allow empty array to be coerced to a mixed one 2019-07-05 17:44:22 -04:00
Matthew Brown
da42be175f Apply PHPCS fixes
Fixes #1880
2019-07-05 16:27:53 -04:00
Matthew Brown
20b7ff1f9d Add unused test 2019-07-04 22:25:49 -04:00
Matthew Brown
9c95dfad44 Skip failing test 2019-07-04 16:44:06 -04:00
Matthew Brown
d0f6f85dba Fix #1899 - detect dead code after array assignment 2019-07-04 16:38:31 -04:00
Brown
ba121a94e7 Allow union of class-strings in signature
Ref #1851
2019-06-27 11:44:35 -04:00
LeSuisse
f29826b958 Fully qualify constants and function calls (#1849)
This should give a small performance boost.
Part of #1837.

The change is enforced via phpcs and can be autofixed
with phpcbf.
2019-06-26 16:52:29 -04:00
Brown
1864d9a2be Allow templated @var on return docblocks 2019-06-26 16:26:14 -04:00
Brown
16bf5f11e1 Fix #1845 - prevent string return when expecting template 2019-06-25 15:06:02 -04:00
Brown
6cb52d2d0e Move strings that reference T::class 2019-06-25 14:15:58 -04:00
Brown
e5016a4ffc Break out function class-string tests in a separate file 2019-06-25 14:13:00 -04:00
Brown
91686bef4b Improve robustness of template checks 2019-06-25 13:20:30 -04:00
Brown
4f9c040a15 Broke apart some large test files 2019-06-25 13:00:06 -04:00
Matthew Brown
5cb6fe14d7 Add support for doubly-extended non-template params 2019-06-24 23:57:19 -04:00
Matthew Brown
9d998bf3ac Fix handling of inherited method call 2019-06-24 23:43:06 -04:00
Matthew Brown
c0b86bd40d Use uppercase template_type_extends keys 2019-06-24 23:43:04 -04:00
Brown
23a3b0dbc0 Fix #1842 - prevent bad templated object returns 2019-06-24 19:07:29 -04:00
Brown
44d52c8649 Add a couple more tests for currently-working behaviour 2019-06-24 17:57:01 -04:00
Brown
fe5138f1a6 Move misplaced tests 2019-06-24 17:51:06 -04:00
Brown
69b05f5052 Improve handling of parent method calls 2019-06-24 17:45:10 -04:00
Brown
2a1ed6ca6a Prevent incorrect template being passed to function 2019-06-24 10:54:03 -04:00
Brown
a5a9da6e50 Fix #1818 - handle intersection when expanding template 2019-06-20 10:09:03 -04:00
Brown
0246f600f4 Fix #1813 - convert object&Foo into Foo after template resolution 2019-06-19 12:00:19 -04:00
Matthew Brown
42bafc1e64 Fix #1775 - allow true|false to be accepted as bool 2019-06-13 08:55:36 -04:00
Brown
9c4599a0f0 Add better support for inheriting docblocks 2019-06-11 11:19:57 -04:00
Brown
7cf8c362f0 Fix #1766 - interpret interface parent extends properly 2019-06-11 10:49:39 -04:00
Matthew Brown
395057c6df Fix #1738 - constrain template type when class-string<T> is a param 2019-06-08 11:08:08 -04:00
Matthew Brown
42cc201e9e Fix #1698 - better understand inherited docblock return types 2019-06-08 09:44:22 -04:00
Matthew Brown
b0678bdc74 Improve treatment of key-of
Ref #1698
2019-06-07 21:27:50 -04:00
Matthew Brown
2fa0f27872 Prevent LessSpecificImplementedReturnType with extended template 2019-06-07 18:42:26 -04:00
Brown
2f29dcce93 Fix #1728 - remove extra data in template-extends annotation 2019-06-03 10:28:54 -04:00
Brown
b19d256b14 Add better error message for templated key-of param 2019-05-28 14:23:22 -04:00
Brown
a89892a41f Prevent more broad template types being captured 2019-05-28 11:54:07 -04:00
Brown
cf02e9c22c Fix access on matched T[K] 2019-05-27 18:36:34 -04:00
Matthew Brown
052599192a Fix #1680 - narrow nullable templated matching 2019-05-25 12:44:47 -04:00
Matthew Brown
9fb96793cd Fix #1676 - don’t modify original param types with templated by-reference 2019-05-24 18:17:48 -04:00
Matthew Brown
62dacaf97b Also replace templated intersection types that aren’t direct templates
Ref #1675
2019-05-24 17:34:40 -04:00
Matthew Brown
7a48225184 Fix leaky template type 2019-05-24 13:35:14 -04:00
Matthew Brown
3e2b7163ca Fix #1674 - treat intersections more equally regardless of order 2019-05-24 12:48:37 -04:00
Matthew Brown
9e3724bb0c Prevent class-string<T> from assigning unknown type to mixed
Fixes #1672
2019-05-24 10:20:37 -04:00
Matthew Brown
c80f9d8ecd Add class-based support for key-of
Ref #762
2019-05-24 02:12:58 -04:00
Matthew Brown
574545e149 Add initial support for key-of<T>
Ref #762
2019-05-23 23:53:48 -04:00
Brown
56daa390fc Allow array access on @template T as array
Ref #1607
2019-05-23 18:06:22 -04:00
Brown
1c30270d89 Remove 7.4 syntax 2019-05-23 13:55:55 -04:00
Brown
888776cebd Fix duplicate test 2019-05-23 13:10:23 -04:00
Brown
034ea725e8 Coerce generic types from empty 2019-05-21 12:12:13 -04:00
Matthew Brown
ec2ee04fe8 Allow coercion from empty to array param 2019-05-21 12:12:13 -04:00
Brown
4035823d51 Fix #1652 - allow totally-templated intersections 2019-05-17 15:40:52 -04:00