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

2654 Commits

Author SHA1 Message Date
Matthew Brown
141bfd313f Improve handling of assignments in arrays 2019-12-22 12:36:16 +00:00
Matthew Brown
8fc3c3b8cd Improve removing types from callable 2019-12-22 10:29:00 +00: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
59aeb6b6c3 Fix #2490 - allow overriding renamed trait methods in subclass 2019-12-20 20:11:27 +00:00
Matthew Brown
8c1638efc5 Fix tests once more 2019-12-20 19:37:36 +00:00
Matthew Brown
3d03da271d Fix tests to give more accurate locations 2019-12-20 18:18:26 +00:00
Matthew Brown
8bba5221b2 Remove dumb test 2019-12-20 18:09:26 +00:00
Matthew Brown
a5434aabfe Fix #2491 - report trait issues at the most local place 2019-12-20 17:57:31 +00:00
Matthew Brown
a4191171bf Fix #2483 - treat intersecting PHPDocs from interfaces better 2019-12-20 01:42:57 +00:00
Matthew Brown
d7b99148be Add support for JUnit report type
Fixes #2485
2019-12-19 20:18:09 +00:00
Matthew Brown
15cd62d332 Fix #2484 - add support for spaces in assert-if-true types 2019-12-19 19:24:26 +00:00
Matthew Brown
ab03ac06f4 Add support for spread operator before type as well
Ref #2429
2019-12-19 00:29:01 +00:00
Matthew Brown
af28d650f3 Fix #2408 - existing offsets checked with isset should be valid 2019-12-18 23:48:25 +00:00
Matthew Brown
456aa1c569 Fix #2468 - add support for zipping arrays 2019-12-18 18:14:02 +00:00
Matthew Brown
734ad02203 Fix #2476 - flesh out iterable params 2019-12-18 17:19:54 +00:00
Matthew Brown
9d8ca08fb9 Fix #2479 - analyse undefined function arguments too 2019-12-18 16:37:48 +00:00
Matthew Brown
cb797c6159 Fix inherited class methods as well
Ref #2478
2019-12-18 14:39:37 +00:00
Matthew Brown
49a3f89526 Fix #2478 - process trait template inheritance sensibly 2019-12-18 13:58:37 +00:00
Brown
e551b24843 Classes that just reference themselves aren’t used 2019-12-16 11:46:10 -05:00
Matthew Brown
bf67c036aa Fix #2474 - treat free-standing binaryops as ifs instead 2019-12-16 08:32:00 -05:00
Matthew Brown
bdbc758ddc Fix #2475 - allow iterable covariance 2019-12-16 07:16:35 -05:00
Matthew Brown
529efaa29c Fix #2473 - allow array_map to work with callables returning static 2019-12-15 19:55:20 -05:00
Matthew Brown
1d0ac3df29 Fix #2472 - array_map should retain non-emptiness when passed string callables 2019-12-15 14:06:12 -05:00
Matthew Brown
72f3c306d7 Fix #2471 - don’t erroneously template class-strings 2019-12-15 13:23:04 -05:00
Matthew Brown
1a92e98dd3 Warn about more generic callables 2019-12-14 11:55:26 -05:00
Matthew Brown
ce2e5b27c0 Fix #2470 - only parameterise constructors according to inherited params 2019-12-14 11:38:09 -05:00
Matthew Brown
797a059a84 Prevent static methods using class instance template types 2019-12-14 09:40:09 -05:00
Matthew Brown
b48021dbfd Allow null return on template with null as type
Ref #2466
2019-12-13 21:56:43 -05:00
Matthew Brown
f40b6625eb Fix #2431 - allow null in template defaults 2019-12-13 21:40:09 -05:00
Brown
e1af0e01ee Revert code back to how it was 2019-12-13 17:52:37 -05:00
Brown
2469f04715 Improve reconciliation of arrays with constant offsets 2019-12-13 17:17:14 -05:00
Brown
6d02aa86e8 Reconcile string emptiness a bit better 2019-12-13 15:51:54 -05:00
Matthew Brown
c9b5e96b0f Fix ref 2019-12-13 08:11:04 -05:00
Matthew Brown
ca5f8fabdc Fix #2464 - null coalesce shouldn’t allow undefined vars 2019-12-13 08:06:40 -05:00
Matthew Brown
f45014d403 Fix #2460 - allow assertions on immutable method calls 2019-12-12 09:32:33 -05:00
Matthew Brown
8f25183784 Fix #2459 - don’t add assertions to parent context unnecessarily 2019-12-12 00:37:00 -05:00
Brown
05783eb616 Find issues with impossible property values 2019-12-11 17:08:02 -05:00
Brown
612f74f481 Clean up static property reconciliation 2019-12-11 15:05:09 -05:00
Brown
6b56a0239d Improve handling of assertions on static properties 2019-12-11 14:06:09 -05:00
Brown
d2b99cbe77 Add possibly defined vars in binary op analysis 2019-12-11 13:09:27 -05:00
Brown
e476eed111 Fix issue where inside_conditional is forgotten 2019-12-11 12:06:10 -05:00
Brown
c9e77d30d6 Add return type 2019-12-11 11:29:26 -05:00
Brown
e564d67214 Add support for simple default arrays in @method docblocks
Fixes #2455
2019-12-11 11:29:00 -05:00
Brown
79f3a5d371 Allow empty string parsing 2019-12-11 10:52:46 -05:00
Brown
3a7dd61889 Fix #2457 - allow psalm-type aliases to be used above return type 2019-12-11 10:30:40 -05:00
Brown
4b715cdbff Fix #2456 - ignore UnusedFunctionCall when function asserts 2019-12-11 10:13:22 -05:00
Matthew Brown
af52590fef Make test better 2019-12-11 00:42:09 -05:00
Matthew Brown
848cbbb487 Fix #2454 - build up template map to better understand passed-through data 2019-12-11 00:34:54 -05:00
Brown
b3cf9d3958 Catch circular references in constants
Fixes #2453
2019-12-10 16:16:44 -05:00
Brown
9d22f56560 Fix #2443 - templates are not valid PHPDoc 2019-12-10 14:03:51 -05:00
Matthew Brown
3faf1f8bc2 Improve int assertions 2019-12-10 09:44:38 -05:00
Matthew Brown
750d4b4f4f Be more accurate when assertion is incorrect
Ref #2452
2019-12-10 09:26:46 -05:00
Matthew Brown
8494f02008 Fix template handling when templating inside templated class 2019-12-10 00:50:36 -05:00
Brown
74de32fefe Allow multiple @psalm-assert annotations for a given variable 2019-12-09 17:21:58 -05:00
Brown
aaffdbc79f Add support for non-empty scalar
Ref #2449
2019-12-09 17:06:10 -05:00
Brown
b78acf796f Fix #2445 - only generalise param when it’s generic 2019-12-09 10:58:09 -05:00
Matthew Brown
517aaac851 Fix #2432 - narrow template type after is_object check 2019-12-08 21:40:15 -05:00
Matthew Brown
432c291dd7 Fix #2440 - add support for uasort 2019-12-08 21:30:19 -05:00
Matthew Brown
d6a731be73 Fix #2441 - add error when @template type is missing 2019-12-08 21:19:29 -05:00
Matthew Brown
e3d108ebd9 Fix #2439 - fix templating of class-string<T>::returnsStatic 2019-12-08 21:12:25 -05:00
Matthew Brown
69e6624b16 Fix #2436 - fix templating of property types inside templated functions 2019-12-08 19:25:40 -05:00
Matthew Brown
02fbf12337 Only warn about clauses in the currently-scanned conditional 2019-12-08 16:35:56 -05:00
Matthew Brown
6236a30bf5 Add broken test 2019-12-08 13:02:38 -05:00
Matthew Brown
c9f43782fd Fix mixed method issues after defining new type 2019-12-08 10:17:40 -05:00
Matthew Brown
83b10bb9af Fix #2426, or at least some of it 2019-12-08 00:49:34 -05:00
Matthew Brown
2e00ad2240 Treat more things as assignments 2019-12-07 15:58:05 -05:00
Matthew Brown
3c52102388 Fix #2438 - improve handling of get_class calls 2019-12-07 14:03:20 -05:00
Matthew Brown
d7fdd9b179 Move more tests into appropriate directory 2019-12-07 13:38:06 -05:00
Matthew Brown
df395944f8 Change how $changed_var_ids is communicated 2019-12-07 01:23:35 -05:00
Brown
6ec947b82b Move some tests into special fodler 2019-12-06 14:58:18 -05:00
Brown
133921b33f Add a few tests 2019-12-06 14:47:05 -05:00
Brown
19838fc7f5 Fix #2423 - pass by ref variable status after byref assignment 2019-12-05 13:37:03 -05:00
Brown
8ff33ee64d Fix #1943 - give up analysing really complicated conditionals 2019-12-05 10:26:53 -05:00
Brown
a3e51d6f13 Fix resolution for class names in lazily-evaluated class constants
Fixes #2413
2019-12-04 13:33:50 -05:00
Brown
e1dd22ef6c Allow static::class to be used in array assertions 2019-12-04 12:23:26 -05:00
Brown
d5f5c742ce Fix #2411 - allow use of covariant params in array returned value 2019-12-04 10:49:07 -05:00
Matthew Brown
aa4daea182 Add extra safety feature 2019-12-03 01:59:36 -05:00
Matthew Brown
585ef0644d Add test for docblock-defined param types 2019-12-03 01:52:18 -05:00
Matthew Brown
97de060df9 Fix #2279 - add parameter typehint by default 2019-12-03 01:49:43 -05:00
Brown
821f3528d2 Fix #701 - indicate issues fixable with Psalter 2019-12-02 15:24:01 -05:00
Matthew Brown
baef66061e Fix class-string test 2019-12-01 23:09:34 -05:00
Matthew Brown
d5f4c24ee0 Fix combining class string types with explicit ones 2019-12-01 23:03:09 -05:00
Matthew Brown
27c9aa4286 Fix code and test 2019-12-01 10:43:51 -05:00
Matthew Brown
f21150b8ad Fix #2384 - fix resolution of @param-out template types 2019-12-01 10:40:53 -05:00
Matthew Brown
e40aaafe61 Allow explicit @var mixed docblocks
Fixes #2397
2019-12-01 10:19:42 -05:00
Matthew Brown
abdf37afb8 Add workarounds for class-string tests 2019-11-30 12:57:18 -05:00
Matthew Brown
088228f119 Fix template default type issue 2019-11-30 12:54:08 -05:00
Matthew Brown
a8c2b7a525 Fix #2400 - string should subsume class-string 2019-11-30 12:32:31 -05:00
Matthew Brown
04879af105 Be less forgiving when extending builtin generic classes 2019-11-30 09:32:21 -05:00
Matthew Brown
d7c3ce2fa8 Fix test to be more accomodating 2019-11-30 01:28:02 -05:00
Matthew Brown
21f36c3dbd Add slashes 2019-11-30 00:49:06 -05:00
Matthew Brown
e777f5227d Don’t run classloader test in 7.1 2019-11-30 00:46:19 -05:00
Matthew Brown
c65540a323 Fix some templating issues in CoreGenericClasses 2019-11-30 00:27:07 -05:00
Bruce Weirdan
9027bc6190 Added SuicidalAutoloader test (#2399)
The idea behind this is that Psalm should not use project autoloader for
its own things. So if we have a project with autoloader and no code,
then any project autoloader hit means Psalm failed to load something
itself.

Right now it highlights several issues in CoreGenericClasses stub:
- usage of `callback` instead of `callable`
- `@property-read` not resolving template parameters
2019-11-30 00:09:07 -05:00
Matthew Brown
a179076de5 Break apart callabletest 2019-11-29 23:46:21 -05:00
Matthew Brown
227ea2042a Fix foreach test 2019-11-29 11:29:22 -05:00
Matthew Brown
45bf8eee00 Add test that should always work 2019-11-29 11:25:29 -05:00
Matthew Brown
1e3ecb5fd0 Fix #2387 - ensure docblock return types are checked 2019-11-29 11:20:37 -05:00
Matthew Brown
a4e18f9b5e Fix #2386 - make generator params invariant 2019-11-29 01:44:31 -05:00
Bruce Weirdan
377e47c8bd Added WeakReference support (#2389) 2019-11-29 01:21:38 -05:00