Matthew Brown
cfde83775d
Fix Psalm errors
2019-05-14 19:30:10 -04:00
Barney Laurance
6fbe2b0837
Extract function NamespaceAnalyzer::nameSpaceRootsMatch
2019-05-14 18:54:16 -04:00
Barney Laurance
14843ed58a
psalm-internal - extract function NamespaceAnalyzer::isWithin
...
Also adjust behaviour so things can be internal to classes, not just to
namespace, and namespace comparision is case insensitive
2019-05-14 18:54:16 -04:00
Barney Laurance
cd673538f1
psalm-internal - refactor - use snake_case not camelCase
2019-05-14 18:54:16 -04:00
Barney Laurance
cd16dc7ac3
psalm-internal - PHPBCBF fixes
2019-05-14 18:54:16 -04:00
Barney Laurance
4415ef0dbd
psalm-internal - prevent invalid extention of class internal to other namespace
2019-05-14 18:54:16 -04:00
Brown
f1d8b1e6e7
Prevent extending covariant template params
...
Fixes #1610
2019-05-14 18:51:30 -04:00
Brown
4f26c8d749
Fix #1597 - ternary else should only know about first conditional expression
2019-05-02 13:43:18 -04:00
Brown
ff14f671b1
Add hopefully-more-portable method for evaluating method/property usage
2019-04-16 16:07:48 -04:00
Brown
24084eb2ec
Use more specific class name
2019-04-15 15:45:24 -04:00
Matthew Brown
934fb53d65
Improve error locations for PropertyNotSetInConstructor errors
2019-04-14 12:48:59 -04:00
Matthew Brown
d145f17782
Fix #1548 - allow parallel execution with --find-dead-code
2019-04-13 15:38:09 -04:00
Brown
26e2de93c7
Prepare to enable paralellised use of --find-dead-code
...
References #1548
2019-04-12 18:28:07 -04:00
Matthew Brown
c63886fc36
Fix Psalm errors
2019-04-08 21:51:18 -04:00
Matthew Brown
cb1ed5f1ca
Fix #1532 - ignore inaccessible method with implicit parent constructor call
2019-04-08 11:01:16 -04:00
Matthew Brown
230680fd1c
Fix #1513 - use correct param types when examining abstract trait methods
2019-03-28 22:47:17 -04:00
Brown
b9ba24929d
Refactor storage of template names to prevent clashes
2019-03-22 15:59:10 -04:00
Brown
8d06c6a700
Fix #1480 by remembering where a property was set
2019-03-19 19:43:18 -04:00
Matthew Brown
a0659a02f1
Fix #1418 - support templated union types
2019-03-16 11:15:25 -04:00
Brown
0b74c6a6e7
Fix interface name ref
2019-03-07 11:30:05 -05:00
Brown
b3a59d2638
Fix #1435 - prevent classes extending interfaces
2019-03-07 11:16:40 -05:00
Matthew Brown
9e8c3b8c6e
Only check interfaces for static matchup
2019-03-03 18:13:15 -05:00
Matthew Brown
4ba15ec18d
Flip abstract trait analysis implementation checks
...
Fix #1414
2019-03-02 14:17:26 -05:00
Matthew Brown
5c76ab35c8
Allow properties to be set regardless of visibility
2019-03-01 17:30:55 -05:00
Matthew Brown
317f790bde
New plugin hooks ( #1405 )
...
* Add a bunch of new hooks
* Add more integrations
* Add some broken tests
* Add more things
* Fix remaining interfaces
* Suppress proper issue
* UndefinedMethod should not stop analysis
* Add handlers for two custom method return types
2019-03-01 08:57:10 -05:00
Matthew Brown
3ad1abece4
Add generation of json artifacts
2019-02-24 01:33:25 -05:00
Matthew Brown
f87827e812
Fix #1288 - prevent template names from clashing with real-world classes
2019-02-21 21:54:00 -05:00
Bruce Weirdan
8408effe57
Dropped unused uses
2019-02-17 13:17:45 -05:00
Matthew Brown
c6b3fc512f
Don’t throw exception when ignoring trait absence
2019-02-10 16:32:30 -05:00
Matthew Brown
62fb8035bf
Fix #1309 - no PropertyNotSetInConstructor warnings for grandchild of class
2019-02-10 15:01:10 -05:00
Matthew Brown
db89b3cc3f
Add initial support for fixing MissingParamType
2019-02-02 11:28:48 -05:00
Matthew Brown
45058ea494
Fix possible crash when class-string class doesn’t exist
2019-01-28 01:12:41 -05:00
Matthew Brown
081ba4b204
Fix #1072 - add support for @use SomeTrait<T>
2019-01-27 23:12:40 -05:00
Brown
fcc9d1a979
Fix #1244 and fix #1243 - add template-extends checks
2019-01-25 15:31:17 -05:00
Brown
c0f3197790
Fix #1238 - only emit MissingTemplateParam on direct interface implementers
2019-01-25 10:10:22 -05:00
Brown
cd0a7441d9
Add warnings for extended template param counts off
2019-01-24 17:55:03 -05:00
Brown
650c2b70f8
Fix #1236 - forbid bad class names in @extends
2019-01-24 16:43:22 -05:00
Brown
5352084188
Fix #1234 - apply @template-extends to inherited method signatures
2019-01-24 16:09:04 -05:00
Matthew Brown
03c5823051
Fix #1217 - allow protected property to be se by parent constructor
2019-01-20 11:20:39 -05:00
Matthew Brown
9c5ef33997
Allow @property to override parent class property type
...
Fixes #1214
2019-01-19 14:26:27 -05:00
Matthew Brown
bf13ff2e7d
Detect bad interface types
2019-01-19 12:19:51 -05:00
Matthew Brown
94af3b6c51
Add automatic inheritance to properties
...
Fixes #1210
2019-01-19 10:09:26 -05:00
Brown
d068f1535d
Fix issue with implemented class interface in subclass
2019-01-16 15:08:11 -05:00
Brown
ee366015f7
Fix #1205 - allow traits to override inheritance checks
2019-01-16 10:59:06 -05:00
Matthew Brown
c43734f3ab
Don’t localise PropertyNotSetInConstructor issues
2019-01-15 21:34:18 -05:00
Matthew Brown
b43a6a31f1
Enable casing plugin and fix issues it found
2019-01-12 10:52:23 -05:00
Brown
2195caaeae
Check type var
2019-01-11 17:28:57 -05:00
Matthew Brown
6e585008f2
Fix #1183 - add hook for class analysis
2019-01-09 08:28:12 -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
b32000fa05
Fix #689 - add checks for @internal annotations
2018-12-01 18:37:49 -05:00
Brown
9e4765663d
Fix #999 - respect @method annotations to redefine parent methods
2018-11-30 15:13:25 -05:00
Matthew Brown
26947888f6
Add some basic support for class_alias
2018-11-29 00:05:56 -05:00
Matthew Brown
9709263b8d
Make many PropertyAnalyzer properties private
2018-11-12 11:20:59 -05:00
Matthew Brown
4d79b61e93
Change _checker to _analyzer
2018-11-12 11:20:59 -05:00
Matthew Brown
4688b25fd9
Move internal classes to own namespace
2018-11-12 11:20:59 -05:00