1
0
mirror of https://github.com/danog/psalm.git synced 2025-01-05 20:48:45 +01:00
Commit Graph

277 Commits

Author SHA1 Message Date
Philip Hofstetter
395cf587d3 add plugin hook to be called after every function call
compared to AfterFunctionCallAnalysisInterface which gets only called
after a call to a function declared within the project, a plugin
implementing AfterEveryFunctionCallAnalysisInterface will get called for
every function call, including calls of PHP builtins.

On the other hand, this interface doesn't allow modification of the code
nor tweaking the return type, but it's still useful for accounting
purposes and for depreacting calls to PHP builtins

this fixes #2804
2020-02-13 09:10:24 -05:00
Brown
f141f7c526 Improve --diff checks by including trait-using classes in dependents 2020-02-11 16:39:33 -05:00
Brown
89a0b101e4 Fix #2784 - no crash when get_class arg is mixed 2020-02-10 14:44:33 -05:00
Matthew Brown
3559fdd6b3 Fix #2742 - prevent paradoxes in assert calls 2020-02-09 11:42:41 -05:00
Matthew Brown
4de6f5c4ec Fix #2442 - using asserting after a MixedAssignment removes that error 2020-02-08 23:01:45 -05:00
Brown
d5f71bf529 Localise template checks to class being tested 2020-02-06 16:38:45 -05:00
Brown
54efbbe831 Fix bad assertion 2020-02-06 16:32:26 -05:00
Brown
9af12932b5 Add slash 2020-02-06 15:09:34 -05:00
Brown
6116b457ed Port over more fixes from template match refactor 2020-02-06 15:07:57 -05:00
Matthew Brown
f0fc9cce5f Fix missing param doc 2020-02-01 18:24:09 -05:00
Matthew Brown
d0b87b6cb0 Fix #2723 - use magic method return type where necessary 2020-02-01 18:21:32 -05:00
Matthew Brown
5eb2ebc508 Add more type-system protections for bad array args 2020-01-29 23:41:17 -05:00
Matthew Brown
933dff9e20 Fix #2712 - allow __toString to have more specific type 2020-01-29 22:28:40 -05:00
Brown
c3a989f6a8 Fix bad var 2020-01-24 15:44:18 -05:00
Brown
c09f97ed6e Fix #2691 - allow list to be a callable maybe 2020-01-24 15:09:06 -05:00
Brown
38e9e8ba87 Register methods as used 2020-01-24 14:53:32 -05:00
Brown
548c9f7e65 Remove unused var 2020-01-24 14:09:25 -05:00
Brown
9f077f5aec Fix formatting 2020-01-24 14:08:01 -05:00
Brown
faf6afdce8 Support call_user_func evaluation
Fixes #726
2020-01-24 13:34:50 -05:00
Brown
0ac20e76c4 Fix #2631 - evaluate purity of uasort closure 2020-01-23 13:49:15 -05:00
Matthew Brown
4a03c4aedd Fix impossible isset checks 2020-01-14 21:54:02 -05:00
Brown
3fd70a9c88 Only set if non-null 2020-01-14 17:03:58 -05:00
Brown
adc658901a Improve inference of constant() calls 2020-01-14 16:56:09 -05:00
Matthew Brown
1f777bec0e Capture non-empty-string from concat more effectively 2020-01-07 01:44:12 -05:00
Brown
083fbc55e1 Add more specific UndefinedMagicMethod issue 2020-01-06 14:23:33 -05:00
Matthew Brown
9fa2db1b6c Move Union::getTypes to Union::getAtomicTypes 2020-01-04 12:20:26 -05:00
Brown
ca1e65b29b Handle iterators better 2020-01-02 10:41:43 -05:00
Matthew Brown
4630d19d45 Fix psalm running 2020-01-01 12:49:12 -05:00
Matthew Brown
5bd9b988fb Fix #2494 - don’t use extended name for anonymous classes 2019-12-31 08:46:52 -05:00
Matthew Brown
44441042f0 Fix style things 2019-12-30 11:07:04 -05:00
Matthew Brown
19faa31865 Allow assertions on nested properties 2019-12-30 10:01:31 -05:00
Matthew Brown
c79ba0b09e Include non-empty-string type in more places 2019-12-30 07:25:36 -05:00
Matthew Brown
2b88261ecd Fix templated assertion cc @vasily-kartashov
This is a good reason for you to skip 3.8.1
2019-12-29 11:57:54 -05:00
Matthew Brown
55c2f7faa2 Fix #2508 - don’t replace templated types with generic ones inside own function 2019-12-28 18:38:02 -05:00
Matthew Brown
ce9435da19 Fix #2521 - use correct context class when analysing trait 2019-12-28 15:56:26 -05:00
Matthew Brown
982fe627e0 Fix #2515 - allow chained assertions on @psalm-mutation-free methods 2019-12-27 16:44:55 -05:00
Matthew Brown
4c8730c5a3 Improve handling of unset array, ensuring that keys don’t persevere 2019-12-22 01:42:39 +00:00
Matthew Brown
946b4f73e6 Fix #2493 - don’t crash when provided function doesn’t exist 2019-12-21 00:34:31 +00:00
Matthew Brown
a4191171bf Fix #2483 - treat intersecting PHPDocs from interfaces better 2019-12-20 01:42:57 +00:00
Matthew Brown
9d8ca08fb9 Fix #2479 - analyse undefined function arguments too 2019-12-18 16:37:48 +00:00
Brown
e551b24843 Classes that just reference themselves aren’t used 2019-12-16 11:46:10 -05:00
Matthew Brown
ce2e5b27c0 Fix #2470 - only parameterise constructors according to inherited params 2019-12-14 11:38:09 -05:00
Matthew Brown
c7a3ba9e4a Refine callable type 2019-12-14 10:47:20 -05:00
Brown
6d02aa86e8 Reconcile string emptiness a bit better 2019-12-13 15:51:54 -05:00
Matthew Brown
6ff312fe13 Fix test 2019-12-12 11:43:03 -05:00
Matthew Brown
1df77a9f43 Only mark vars as reconcilable if they can be memoized 2019-12-12 11:24:47 -05:00
Matthew Brown
f45014d403 Fix #2460 - allow assertions on immutable method calls 2019-12-12 09:32:33 -05:00
Brown
4b715cdbff Fix #2456 - ignore UnusedFunctionCall when function asserts 2019-12-11 10:13:22 -05:00
Matthew Brown
e3d108ebd9 Fix #2439 - fix templating of class-string<T>::returnsStatic 2019-12-08 21:12:25 -05:00
Matthew Brown
02fbf12337 Only warn about clauses in the currently-scanned conditional 2019-12-08 16:35:56 -05:00