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

103 Commits

Author SHA1 Message Date
orklah
250fa8e42d
misc changes (#4227)
* misc changes

* misc changes
2020-09-22 00:44:31 -04:00
orklah
ead107fa9e
More return types (#4173)
* add native return types

* redundant phpdoc
2020-09-12 11:24:05 -04:00
Brown
877a81f808 Always detect return type mismatches from docblock parents 2020-09-07 16:42:25 -04:00
orklah
f66d57f19d
add native return types (#4116)
* add native return types

* remove redundant phpdoc
2020-09-04 16:26:33 -04:00
Brown
bcf0df4170 Fix a bug with lowercase-string unions 2020-08-05 20:05:57 -04:00
Brown
488a899823 Fix Psalm issues 2020-08-05 19:49:09 -04:00
Brown
c0b0036109 Fix #3934 - prevent unsafe use of new static 2020-08-05 19:39:27 -04:00
Daniel Melchior
fa73c7c9d9
Fix #3757 - allow multiple mixins (#3772) 2020-08-05 15:49:19 -04:00
Brown
92fe9898a1 Fix #3879 - ensure interface templates are extended where nececssary 2020-07-24 11:29:36 -04:00
Barney Laurance
ff432ff73d
Simplify error messages and implementation for internal errors (#3881)
* Use more consistent language for Internal errors

There's no meaningful distinction between something being internal and
being 'marked as internal'.

* Rename property psalm_internal to internal in all storage classes

This property holds metadata that can be set using either @internal
or @psalm-internal in docblocks

* Change types of internal properties in storage from ?string to string

Simpler type is easier to handle. Non-internal methods can be considered
to be internal to the entire universe of PHP code, i.e. that code whose
namespace starts with the empty string. It's not a special case.
2020-07-24 09:32:54 -04:00
Barney Laurance
3bc91b9944
Fix multiple issues with @internal and @psalm-internal (#3841)
* Add passing tests for property fetch on an @internal class

I'm trying to work out why the equivilent InvalidCodeParse test is
failing for PsalmInternal

* Treat all properties of a psalm-internal class as psalm-internal

* Remove all $internal properties from storage - use psalm_internal instead

@internal can be represented as internal to the namespace root, avoiding
the need to check for both properties in storage later.

* Raise InternalClass issue when an internal class is used with e.g. instanceOf

* fix docs and tests

* Add return type declartion to code example in doc

* Don't allow class psalm-internal to overide a tighter method psalm-internal

* Break up long line

* Code style - move && from EOL to SOL

* Restore misplaced &&

* Fix code style

* Fix namespace fetching so it works

Co-authored-by: Matthew Brown <github@muglug.com>
2020-07-22 19:27:35 -04:00
Brown
76bd5b6278 Refactor type comparison 2020-07-21 19:40:35 -04:00
Brown
2ccec821f8 Fix #3624 - inherit magic property annotations from traits 2020-06-20 16:53:17 -04:00
Brown
8f2e28c36b Improve tainting of specializable classes 2020-06-19 01:22:51 -04:00
Brown
16189782ab Inherit whether methods are sealed from parent
Ref #3561
2020-06-11 11:28:41 -04:00
Brown
d04e21ee5a Define mixin declaring classname 2020-05-26 23:32:07 -04:00
Brown
28349c6423 Remove mixin_fqcln hack 2020-05-10 09:04:30 -04:00
Brown
aceaf6c356 Fix #3217 - don’t override abstract return type with parent one 2020-05-02 21:57:53 -04:00
Brown
132b5c9358 Fix #3263 - inherit magic properties when using @mixin 2020-05-02 19:57:38 -04:00
Brown
6b42efed3f Fix #3150 - only inherit docblock return when same type is returned 2020-04-20 09:22:58 -04:00
Matthew Brown
39f7296670 Fix #2191 - allow inheritance from stub-only files 2020-03-29 00:13:01 -04:00
Matthew Brown
cbf139952c Fix #2989 - delay @mixin hydration until parent methods inherited 2020-03-18 21:38:53 -04:00
Matthew Brown
b999037263 Fix #2928 - properly expand out skipped template inheritance 2020-03-06 19:24:47 -05:00
Brown
712806b452 Fix #2874 - understand doubly-inherited interface templates 2020-02-24 17:58:44 -05:00
Matthew Brown
bacc7f254c Remove unnecessary extension check 2020-02-15 10:42:29 -05:00
Matthew Brown
653353709a Use MethodIdentifier object instead of string 2020-02-14 20:54:26 -05:00
Brown
210d65d0d6 Add a few lowercase-string types 2020-02-13 17:52:23 -05:00
Brown
8989737e51 Fix #2775 - use lowercase strings in a couple more places 2020-02-13 17:44:16 -05:00
Brown
adfb488986 Fix #2565 - prevent infinite recursion when analysing file with @mixin annotations that reference each other 2020-01-07 17:06:44 -05:00
Brown
07aaa3f99d Don’t complain about method mismatches for @mixin 2020-01-06 18:04:28 -05:00
Matthew Brown
9fa2db1b6c Move Union::getTypes to Union::getAtomicTypes 2020-01-04 12:20:26 -05:00
Matthew Brown
d5d4a1826d Add initial support for @mixin Foo 2020-01-02 23:50:19 -05:00
Matthew Brown
c79ba0b09e Include non-empty-string type in more places 2019-12-30 07:25:36 -05:00
Matthew Brown
59aeb6b6c3 Fix #2490 - allow overriding renamed trait methods in subclass 2019-12-20 20:11:27 +00:00
Matthew Brown
395cac0e0b Add specific exception 2019-12-20 18:08:53 +00:00
Matthew Brown
a4191171bf Fix #2483 - treat intersecting PHPDocs from interfaces better 2019-12-20 01:42:57 +00:00
Matthew Brown
c3d8315ab9 Don’t inherit parameter covariance 2019-12-14 10:06:40 -05:00
Brown
b693b726c7 Improve handling of default extended params 2019-11-14 12:12:09 -05:00
Brown
4bf632bc23 Only extend covariant flag to vars without template param 2019-11-04 11:12:59 -05:00
Matthew Brown
a82e35a59f Fix #2291 - extended covariant template param types should be treated as covariant 2019-11-01 18:25:07 +01:00
Brown
aa5d82d30d Fix #2228 - load functions defined on traits included in a class 2019-10-15 12:09:08 -04:00
Brown
648dda67ed Fix Psalm issues 2019-09-25 13:12:29 -04:00
Brown
2d621f185a Fix #2166 - inherit twice from docblocks 2019-09-25 12:02:59 -04:00
Matthew Brown
80059f9139 Scrub inferred mutation-free when method is overridden 2019-09-22 09:40:08 -04:00
Matthew Brown
0b4981f01b Fix #1551 - do better at inferring class constant types 2019-09-14 14:26:31 -04:00
Brown
b49444b8ad Allow immutable objects to be cloned
Fixes #2111
2019-09-09 11:14:40 -04:00
Brown
56c884845f Static methods inside @psalm-immutable class should be permitted
Fixes #2109
2019-09-09 10:38:55 -04:00
Brown
b7b4baff8f Add support for @immutable
Fixes #1272
2019-08-30 12:36:35 -04:00
Sergey Melesh
af875439e7 Inherit throws docblock from parent class by default (#1947) 2019-07-14 17:29:04 -04:00
Sergey Melesh
ee1387473f Fix throws docblock inheritance (#1945) 2019-07-13 10:10:51 -04:00