Matthew Brown
|
a4191171bf
|
Fix #2483 - treat intersecting PHPDocs from interfaces better
|
2019-12-20 01:42:57 +00:00 |
|
Brown
|
2469f04715
|
Improve reconciliation of arrays with constant offsets
|
2019-12-13 17:17:14 -05:00 |
|
Brown
|
05783eb616
|
Find issues with impossible property values
|
2019-12-11 17:08:02 -05:00 |
|
Brown
|
e476eed111
|
Fix issue where inside_conditional is forgotten
|
2019-12-11 12:06:10 -05:00 |
|
Matthew Brown
|
02fbf12337
|
Only warn about clauses in the currently-scanned conditional
|
2019-12-08 16:35:56 -05:00 |
|
Matthew Brown
|
83b10bb9af
|
Fix #2426, or at least some of it
|
2019-12-08 00:49:34 -05:00 |
|
Matthew Brown
|
2b6831ba10
|
Fix too-long line
|
2019-12-07 01:38:24 -05:00 |
|
Matthew Brown
|
df395944f8
|
Change how $changed_var_ids is communicated
|
2019-12-07 01:23:35 -05:00 |
|
Brown
|
ef44bd104e
|
Consolidate some fixes from the binaryop branch
|
2019-12-06 12:47:27 -05:00 |
|
Brown
|
8ff33ee64d
|
Fix #1943 - give up analysing really complicated conditionals
|
2019-12-05 10:26:53 -05:00 |
|
Brown
|
821f3528d2
|
Fix #701 - indicate issues fixable with Psalter
|
2019-12-02 15:24:01 -05:00 |
|
Matthew Brown
|
e40aaafe61
|
Allow explicit @var mixed docblocks
Fixes #2397
|
2019-12-01 10:19:42 -05:00 |
|
Brown
|
1f07ea7ee7
|
Tighten up Psalm’s inference
|
2019-11-25 15:20:31 -05:00 |
|
Brown
|
1add42b691
|
Fix switch handling
|
2019-11-25 11:51:34 -05:00 |
|
Brown
|
0bcb7863f3
|
Use better system for storing inferred types and assertions
|
2019-11-25 11:44:54 -05:00 |
|
Brown
|
7b719915f5
|
Fix style things
|
2019-11-12 10:21:27 -05:00 |
|
Brown
|
7f5af741f7
|
Improve assertion calculation on mixed vars
|
2019-11-12 10:12:07 -05:00 |
|
Matthew Brown
|
b1aae0d1a5
|
Fix more try/catch stuff
|
2019-11-12 00:52:10 -05:00 |
|
Brown
|
51557c44ea
|
Evaluate finally blocks at the end of every catch
|
2019-11-11 18:38:33 -05:00 |
|
Brown
|
da03902f76
|
Fix handling of do... while vars defined in try
|
2019-11-11 18:24:43 -05:00 |
|
Brown
|
f22266b2ff
|
Improve reasoning around try/catch possibly-undefined vars
|
2019-11-11 17:42:46 -05:00 |
|
Brown
|
1a54aa5752
|
Fix test
|
2019-11-11 17:07:26 -05:00 |
|
Brown
|
cd2f8e7d65
|
Fix memory corruption
|
2019-11-11 16:56:44 -05:00 |
|
Brown
|
935bad9d2c
|
Fix erroneous unused variable
|
2019-11-11 16:52:55 -05:00 |
|
Brown
|
d15989c975
|
Allow catch to assume no try statements completed
|
2019-11-11 15:17:53 -05:00 |
|
Brown
|
fbd1cf0a71
|
Fix #2322 - don’t update outer context if elseif has no leaving statements
|
2019-11-11 11:46:27 -05:00 |
|
Brown
|
96586f16c0
|
Fix phpcs issues
|
2019-11-11 10:11:42 -05:00 |
|
Matthew Brown
|
94d4b876ba
|
Fix #2177 - mark variables in try block as potentially undefined
|
2019-11-09 12:25:30 -05:00 |
|
Matthew Brown
|
62a3598ed3
|
Fix #2197 - prevent false positive from try in while
|
2019-11-09 11:01:48 -05:00 |
|
Matthew Brown
|
7028a64440
|
Fix #2204 - fix try/catch false-positive
|
2019-11-09 10:39:21 -05:00 |
|
Matthew Brown
|
233977a764
|
Fix undefined array offset when too few iterator params supplied
|
2019-10-21 07:13:33 -04:00 |
|
Matthew Brown
|
4aeb28aceb
|
Fix #2244 - correctly check do while expression before use
|
2019-10-20 14:18:30 -04:00 |
|
Brown
|
2be489c527
|
Fix regression when identifying clauses in error
|
2019-10-18 15:06:37 -04:00 |
|
Matthew Brown
|
e8618371fb
|
Refine isset checks
|
2019-10-17 01:09:21 -04:00 |
|
Matthew Brown
|
54a31f8cff
|
Be more scrupulous about mixed vars
|
2019-10-17 00:29:51 -04:00 |
|
Matthew Brown
|
29902c8b99
|
Fix #2237 - suppress reconciling issues when inherited clauses couldn’t be resolved into types
|
2019-10-16 21:55:11 -04:00 |
|
Brown
|
16c33d1565
|
Add support for list type
Fixes #2209
|
2019-10-08 18:44:46 -04:00 |
|
Brown
|
6b012f8fa6
|
Use smarter type merging when analysing if statements
|
2019-10-08 13:07:28 -04:00 |
|
Brown
|
f8f8b633b1
|
Suppress a bunch of PossiblyUndefinedArrayOffset issues
|
2019-10-01 15:44:43 -04:00 |
|
Brown
|
cf799d0926
|
Fix #2173 - remove @var annotations automatically
|
2019-09-26 15:08:05 -04:00 |
|
Matthew Brown
|
fdbea45534
|
Fix #2159 - only apply elseif conditions to vars that exist in main context
|
2019-09-21 16:58:31 -04:00 |
|
Brown
|
c5ef2516b5
|
Fix #2150 - add detection for unnecessary @var annotations
And also remove them from codebase
|
2019-09-19 11:59:43 -04:00 |
|
Matthew Brown
|
853e92e7fc
|
Fix #2073 - better understand assignments inside elseif
|
2019-08-26 22:55:28 -04:00 |
|
Matthew Brown
|
25487a5b63
|
Break out if conditional analysis
|
2019-08-26 22:55:01 -04:00 |
|
Brown
|
febd60dade
|
Add better handling of catch-reassigned vars
Ref #2052
|
2019-08-26 11:41:15 -04:00 |
|
Brown
|
80d9b5dc29
|
Add support for iterating over SimpleXMLElement
|
2019-08-23 14:15:20 -04:00 |
|
Brown
|
9835943294
|
Fix #2041 - make sure property is always set
|
2019-08-21 11:25:08 -04:00 |
|
Brown
|
95c61db513
|
Add a PossibleRawObjectIteration issue
|
2019-08-20 12:06:02 -04:00 |
|
Brown
|
b5614d03f8
|
Add detection for unused function calls
|
2019-08-13 13:15:23 -04:00 |
|
Brown
|
10b8a94564
|
Fix #2007 - improve unused variable detection in always-entered loops
|
2019-08-12 16:01:24 -04:00 |
|
Matthew Brown
|
50bd18c404
|
Fix #1985 - prevent complicatedExpressionException from breaking analysis
|
2019-08-06 22:58:53 -04:00 |
|
Brown
|
c67e38aded
|
Rename var to be more uniform
|
2019-07-31 17:14:00 -04:00 |
|
Matthew Brown
|
2c89a97f91
|
Fix #1970 - make sure reconciled types are templated
|
2019-07-25 08:33:27 -04:00 |
|
Tyson Andre
|
5d5a9c6eac
|
Remove redundant casts and unused use statements (#1955)
* Remove redundant casts
(not sure about older versions of php-parser)
* Remove unused use statements
|
2019-07-18 23:37:36 -04:00 |
|
Matthew Brown
|
30ecde2272
|
Overwrite var when try exits
|
2019-07-07 14:00:49 -04:00 |
|
Matthew Brown
|
cd715a60fd
|
Fix #1909 - populate var scope if try always leaves
|
2019-07-07 13:52:43 -04:00 |
|
Matthew Brown
|
678d4e5286
|
Fix #1901 - improve loop-based handling of vars after continue
|
2019-07-04 20:38:52 -04:00 |
|
Matthew Brown
|
6dd549b8a6
|
Fix #1900 - discard old references to code after an assignment
|
2019-07-04 17:35:33 -04:00 |
|
Tyson Andre
|
af52ad245a
|
Remove unused variables (#1898)
|
2019-07-04 15:17:28 -04:00 |
|
Matthew Brown
|
9ab3161675
|
Fix issues found by Psalm
|
2019-06-29 21:13:02 -04:00 |
|
Matthew Brown
|
436ccae819
|
Fix SwitchAnalyzer memory leak
|
2019-06-29 19:20:09 -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 |
|
Matthew Brown
|
c66a106622
|
Improve performance by doing less cloning
Ref #1837
|
2019-06-26 00:14:06 -04:00 |
|
Matthew Brown
|
c0b86bd40d
|
Use uppercase template_type_extends keys
|
2019-06-24 23:43:04 -04:00 |
|
Brown
|
0246f600f4
|
Fix #1813 - convert object&Foo into Foo after template resolution
|
2019-06-19 12:00:19 -04:00 |
|
Brown
|
ddd287fb3d
|
Move exception classes
|
2019-06-05 11:33:04 -04:00 |
|
Matthew Brown
|
ad4e2f72e2
|
Add means to guess PSR4 file path
|
2019-06-05 08:50:24 -04:00 |
|
Brown
|
f309c755f8
|
Add ability to move classes
|
2019-06-05 08:50:24 -04:00 |
|
Matthew Brown
|
2b0a17c1c8
|
Add simple tool to move static methods
|
2019-06-02 01:10:50 -04:00 |
|
Matthew Brown
|
909e02d441
|
Move var docblocks within function
|
2019-06-01 12:25:57 -04:00 |
|
Matthew Brown
|
dc5a5bcd9d
|
Simplify var docblock parsing signature
|
2019-06-01 11:53:32 -04:00 |
|
Matthew Brown
|
cd969c51e5
|
Generate missing param types from callers
Fixes #1707
|
2019-05-31 01:47:35 -04:00 |
|
Matthew Brown
|
962d8f30a1
|
Fix #710 - treat keyed intersections of iterators properly
|
2019-05-29 19:58:54 -04:00 |
|
Brown
|
0e6d07c4e9
|
Add ancillary var types
|
2019-05-28 11:58:15 -04:00 |
|
Matthew Brown
|
790bc53bfd
|
Fix #1681 - interpret parent annotation properly
|
2019-05-25 11:51:09 -04:00 |
|
Brown
|
8c653b0312
|
Improve dead code detection a little more
|
2019-05-20 18:25:11 -04:00 |
|
Brown
|
2637156f45
|
Properly fix #1128 with additional check
|
2019-05-20 12:01:18 -04:00 |
|
Brown
|
83a2122f8c
|
Fix #1464 and fix #1128 - reduce try/catch UnusedVariable false positives
|
2019-05-20 11:54:21 -04:00 |
|
Matthew Brown
|
1c10ae11bf
|
Fix #1580 - look for no-returns in try/catch statements
|
2019-05-14 21:22:29 -04:00 |
|
Matthew Brown
|
7c2fe53446
|
Fix #1391 - find dead code in assignments to self
|
2019-05-12 23:31:36 -04:00 |
|
Matthew Brown
|
a3a208a7c9
|
Remove unused variables
|
2019-05-12 23:13:27 -04:00 |
|
Matthew Brown
|
307cdbbbb3
|
Fix #1626 - detect dead code found in #1624
|
2019-05-12 20:49:37 -04:00 |
|
Brown
|
b83f540b15
|
Prevent crash when iterator class does not exist
|
2019-05-08 11:03:47 -04:00 |
|
Matthew Brown
|
419d1da98d
|
Fix issue where iterators weren’t processed recursively
|
2019-05-08 09:04:52 -04:00 |
|
Brown
|
08bf101f48
|
Fix #1598, catching unused variables followed by try inside loop
|
2019-05-02 17:21:02 -04:00 |
|
Brown
|
4f26c8d749
|
Fix #1597 - ternary else should only know about first conditional expression
|
2019-05-02 13:43:18 -04:00 |
|
bugreportuser
|
f5e03715f3
|
Fix memory leak
|
2019-04-02 23:36:55 -04:00 |
|
bugreportuser
|
4fc7e4affc
|
Give errors for all uncaught exceptions
|
2019-03-31 14:22:19 -04:00 |
|
bugreportuser
|
8b12751007
|
Keep track of throw code locations
|
2019-03-24 23:03:37 -04:00 |
|
Brown
|
b9ba24929d
|
Refactor storage of template names to prevent clashes
|
2019-03-22 15:59:10 -04:00 |
|
bugreportuser
|
e31cfa503d
|
Allow reconciling superglobal types
|
2019-03-16 12:49:38 -04:00 |
|
Matthew Brown
|
a0659a02f1
|
Fix #1418 - support templated union types
|
2019-03-16 11:15:25 -04:00 |
|
Brown
|
119687f934
|
Fix redundant condition message when negating a docblock type
|
2019-02-27 14:02:02 -05:00 |
|
Matthew Brown
|
8650f9eb1a
|
Fix #1356 - improve assertion system to work better on function calls
|
2019-02-26 01:03:33 -05:00 |
|
Matthew Brown
|
cdae79b9fe
|
Fix unnecessary params in Psalm codebase
|
2019-02-23 11:31:33 -05:00 |
|
Matthew Brown
|
1c8a573b5f
|
Change TGenericParam to TTemplateParam
|
2019-02-21 21:40:06 -05:00 |
|
Matthew Brown
|
12f1ffca11
|
Fix issue reconciling mixed vars inside loop
|
2019-02-18 11:39:05 -05:00 |
|
Bruce Weirdan
|
8408effe57
|
Dropped unused uses
|
2019-02-17 13:17:45 -05:00 |
|
Matthew Brown
|
83e22a10f8
|
Fix #1299 - vars defined in catches before throw are possibly-defined for finally
|
2019-02-09 15:39:30 -05:00 |
|
Matthew Brown
|
c83afc1af2
|
Fix element type inference for DOMNodeList
|
2019-02-05 13:34:59 -05:00 |
|
Matthew Brown
|
194bb31221
|
Fix #204 - allow missing param types to be added with Psalter
|
2019-02-02 14:16:49 -05:00 |
|
Matthew Brown
|
db89b3cc3f
|
Add initial support for fixing MissingParamType
|
2019-02-02 11:28:48 -05:00 |
|
Matthew Brown
|
22ee72808a
|
Remove a bunch of hacks around generic offsets
Also fixes #1245
|
2019-01-26 16:58:49 -05:00 |
|
Matthew Brown
|
8bc17e47be
|
Fix #1227 - allow genric params in @psalm-assert
|
2019-01-22 23:42:54 -05:00 |
|
Matthew Brown
|
5eb0bb8126
|
Make foreach var annotation use more cautious
|
2019-01-20 11:49:13 -05:00 |
|
Matthew Brown
|
0ac7d106a3
|
Fix #1221 - no TypeDoesNotContainType in catch or finally
|
2019-01-20 09:27:46 -05:00 |
|
Matthew Brown
|
545c7e3cba
|
Fix #1211 - allow docblocks to override foreach type earlier
|
2019-01-19 11:31:51 -05:00 |
|
Matthew Brown
|
b6865b130b
|
Catch exception in more places
|
2019-01-08 09:57:14 -05:00 |
|
Matthew Brown
|
bcbede07ba
|
Fix issue with do analysis while loops
|
2019-01-07 01:15:30 -05:00 |
|
Matthew Brown
|
9c9e57cf6b
|
Fix #1153 - ignore redundant conditions in finally block
|
2019-01-06 12:39:18 -05:00 |
|
Matthew Brown
|
6f1d56a80f
|
Upcast iterables to traversables when used in a templated class string
|
2019-01-05 10:32:39 -05:00 |
|
Matthew Brown
|
9d8c2792e2
|
Add array-key type and improve general type handling
Fixes #1144
|
2019-01-05 00:15:53 -05:00 |
|
Matthew Brown
|
2dc3d9651f
|
Separate iterable into its own type
Fixes #1151
|
2019-01-04 14:54:40 -05:00 |
|
Brown
|
53749bd5c5
|
Do better at finding things that exit
|
2019-01-02 18:14:47 -05:00 |
|
Matthew Brown
|
13e14b3162
|
Remove code that was breaking things
|
2018-12-19 00:28:11 -05:00 |
|
Brown
|
ca1a615026
|
Don’t call reconciliation on empty vars
|
2018-12-17 15:23:56 -05:00 |
|
Matthew Brown
|
fd0ab47b80
|
Fix #1118 - detect possible issues with unions of mixed
|
2018-12-08 13:18:55 -05:00 |
|
Matthew Brown
|
b32000fa05
|
Fix #689 - add checks for @internal annotations
|
2018-12-01 18:37:49 -05:00 |
|
Brown
|
c378079db8
|
Make the length of possible string unions unlimited in conditionals
Fixes #1103
|
2018-11-28 15:12:08 -05:00 |
|
Matthew Brown
|
a83387b187
|
Fall through after RawObjectIteration
|
2018-11-27 09:34:54 -05:00 |
|
Brown
|
3bcbd9d659
|
Don’t emit errors when iterating over array|iterator
|
2018-11-26 16:50:47 -05:00 |
|
Matthew Brown
|
9f79bdb86e
|
Allow iteration over iteratoraggregate directly
|
2018-11-21 18:35:41 -05:00 |
|
Matthew Brown
|
ef7298c62c
|
Improve treatment of getIterator calls
Fixes #991
|
2018-11-21 17:56:04 -05:00 |
|
Matthew Brown
|
37dedee7b6
|
Fix memory leak issues and disable garbage collection
|
2018-11-18 11:39:14 -05:00 |
|
Brown
|
254a14f621
|
Allow assertion redundant conditions to be suppressed
|
2018-11-14 13:44:20 -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 |
|