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

281 Commits

Author SHA1 Message Date
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