1
0
mirror of https://github.com/danog/psalm.git synced 2024-11-30 04:39:00 +01:00
Commit Graph

92 Commits

Author SHA1 Message Date
Bruce Weirdan
2b39ab02a0
Resolve class aliases when accessing properties (#5068)
* Resolve class aliases when accessing properties

* Moved Properties::getClasslikeStorage() to ClassLikes::getStorageFor()
2021-01-29 11:47:34 +01:00
Matt Brown
36af6d70d2
Fix tests 2021-01-29 11:46:05 +01:00
Matt Brown
d688d5fd74
Add support for @return never 2021-01-29 11:45:02 +01:00
Matt Brown
2a7feef5f6
Fix #4466 use better differentiation for class_exists second param 2021-01-29 11:45:01 +01:00
orklah
db45ff1ba4
More return types (#4173)
* add native return types

* redundant phpdoc
2021-01-29 11:38:57 +01:00
Brown
afce2dc66f Tighten up rules around instantiation a bit more 2020-08-06 10:18:55 -04:00
Brown
c0b0036109 Fix #3934 - prevent unsafe use of new static 2020-08-05 19:39:27 -04:00
Brown
e3ff856cac Improve treatment of static in intersection 2020-03-27 19:17:44 -04:00
Brown
1bfc61d402 Allow final classes to bypass static checks 2020-03-24 18:14:10 -04:00
Brown
ec34a16291 Warn about invalid static returns 2020-03-24 18:00:20 -04:00
Matthew Brown
f128c8ffda Fix overriding of mapped property type visibility 2020-03-11 17:41:05 -04:00
Matthew Brown
1dc26afb27 Fix #2958 - prevent overriding final methods 2020-03-10 21:26:02 -04:00
Brown
2c8688dd97 Don’t crash when conditionally defining classes with properties 2020-03-09 14:24:19 -04:00
Matthew Brown
aea33824e6 Fix #1555 - allow phantom class constants 2020-02-18 19:46:05 -05:00
Brown
8989737e51 Fix #2775 - use lowercase strings in a couple more places 2020-02-13 17:44:16 -05:00
Matthew Brown
07a53f6b81 Fix #2789 - Numeric should not be a reserved class name 2020-02-11 22:34:34 -05:00
Matthew Brown
872365f444 Fix #2539 - use unaliased parent class name 2020-01-01 17:23:13 -05:00
Bruce Weirdan
33142e7637 Use unalised trait name when importing aliased trait (#2393)
Fixes vimeo/psalm#2392
Refs vimeo/psalm#2278
2019-11-29 01:21:00 -05:00
lhchavez
216f991b0c Normalize stringified type names (#2239)
This change makes stringified types more normalized. Concretely it sorts
all union types, reconciled types, and sorts the keys within object-like
types.
2019-10-17 01:14:33 -04:00
Matthew Brown
f8a2eae0e2 Fix #2186 - use expanded class name for aliased class 2019-09-30 22:15:48 -04:00
Matthew Brown
5d94e340ee Remove unused suppressions in tests 2019-08-18 15:34:32 -04:00
Brown
a4d57e5524 Fix #2018 - prevent fatal error on class_aliased class reference 2019-08-15 10:17:27 -04:00
Matthew Brown
90854c4094 Fix broken behaviour when analysing interface test methods 2019-07-28 19:44:36 -04:00
Matthew Brown
ab50c6ce2e Fix #1949 - check that aliased name doesn’t exist before transforming 2019-07-17 20:33:44 -04:00
Matthew Brown
da42be175f Apply PHPCS fixes
Fixes #1880
2019-07-05 16:27:53 -04:00
Matthew Brown
802016757c Fix #1891 - don’t enter class_alias if the class doesn’t exist 2019-07-04 15:46:24 -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
602bae3bb3 Allow class_exists(..., false) to inform class-string type 2019-05-28 13:16:09 -04:00
Matthew Brown
69150d503a Fix #1682 - correct arg check 2019-05-26 16:26:47 -04:00
Matthew Brown
d51ee033ce
Skip broken test 2019-05-26 14:22:28 -04:00
Matthew Brown
720ad42ab9
Fix test 2019-05-26 13:34:07 -04:00
Matthew Brown
8b9de8bba6 class_esists check with false arg shouldn’t count
Fixes #1682
2019-05-26 13:16:44 -04:00
Matthew Brown
ea930b8875 Fix interface_exists after class_exists check 2019-05-20 20:57:59 -04:00
Matthew Brown
1e853800a3 Fix #1657 - allow interface_exists to generate class-string assertion 2019-05-19 15:56:04 -04:00
Matthew Brown
c772914910 Add some formatting 2019-03-23 14:27:54 -04:00
Brown
b3a59d2638 Fix #1435 - prevent classes extending interfaces 2019-03-07 11:16:40 -05:00
Bruce Weirdan
9bdc9f774f More provider typing 2019-03-02 08:43:19 -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
bf8f76671b Don’t crash when suppressing UndefinedClass with bad params 2019-01-05 12:59:12 -05:00
Matthew Brown
87052537cf Fix #1167 - don’t worry about AbstractInstantiation when it could be a descendant 2019-01-04 12:28:00 -05:00
Matthew Brown
0f6ce983f4 Fix #1154 - parent::foo() calls should not cause exception when parent does not exist 2018-12-30 18:28:15 +01:00
Matthew Brown
4688b25fd9 Move internal classes to own namespace 2018-11-12 11:20:59 -05:00
Matthew Brown
9056353b7f Fix #1065 - allow interface methods to be used in abstract classes 2018-11-10 19:05:51 -05:00
Matthew Brown
200ea70334 Check that non-user-defined abstract methods are implemented, too 2018-07-21 20:50:42 -04:00
Matthew Brown
2af7ea05da Fix #897 - understand static class comparisons in is_a 2018-07-17 22:50:30 -04:00
Matthew Brown
0fa7cbeb02 Fix #895 - check __call magic method args 2018-07-16 22:48:53 -04:00
Matthew Brown
6f96c661ef Fix #881 - skip tests if necessary test classes are missing 2018-07-16 20:52:58 -04:00
Matthew Brown
3a235ad757 Fix #887 - resolve get_class($c) === self::class to current class name 2018-07-13 09:52:15 -04:00
Matt Brown
7c2ec06de8 Fix #795 - don’t use colons in generated anonymous class name 2018-06-06 15:32:03 -04:00
Matt Brown
564cebbaad Fix #669 - improve signatures of mysql 2018-04-13 10:51:18 -04:00