1
0
mirror of https://github.com/danog/psalm.git synced 2024-11-27 12:55:26 +01:00
Commit Graph

429 Commits

Author SHA1 Message Date
Matt Brown
39ece995b6 Add @psalm-ignore-nullable-return annotation 2017-05-10 12:36:11 -04:00
Matt Brown
a4bdca55e9 Fix sscanf test with new types 2017-05-05 19:56:45 -04:00
Matt Brown
77da5ca99e Fix #156 - allow objectlike arrays to be merged nicely 2017-05-05 18:53:45 -04:00
Matt Brown
df890fbfb0 Fix #155 - support @property declaration for classes with magic getters & setters 2017-05-04 18:35:05 -04:00
Matthew Brown
754a4d9950 Allow Psalm to be run outside of the directory it's installed in (#154)
* Add --root option when not running Psalm from root directory

* Add informative error when running Psalm outside of its project directory

* Add better message in help

* Fix autoloader precedence
2017-05-04 14:25:58 -04:00
Matt Brown
9cabf428c4 Only make isset $this->property mixed if not already defined 2017-04-28 16:41:54 -04:00
Jon Ursenbach
11bc153deb Rewriting and streamlining every unit test with data providers. (#147)
* Rewriting and streamlining every unit test with data providers.

All unit tests have been rewritten into PHPUnit data providers
to reduce the amount of unnecessary code-reuse through out the
test suite.
2017-04-24 23:45:02 -04:00
Matt Brown
dc26d2df04 Fix #144 - prevent innaccurate __toString warning 2017-04-21 14:23:09 -04:00
Matthew Brown
1a8cdc5da9 Allow two or more instanceof interface checks side by side 2017-04-15 21:25:53 -04:00
Matthew Brown
007442fdd0 Fix possibly-private error 2017-04-15 21:10:49 -04:00
Matthew Brown
f67e92023b Add support for intersection types
Fixes #140
2017-04-15 20:36:40 -04:00
Matthew Brown
eebaf5795d Fix regression dealing with union types from docblocks 2017-04-15 12:44:38 -04:00
Matthew Brown
a8bee2f843 Suggest missing property types for traits as well 2017-04-15 00:04:03 -04:00
Matthew Brown
0c4824b2cc Take property defaults into account when suggesting missing type 2017-04-14 23:46:55 -04:00
Matthew Brown
8d46c65815 Only make non-null if inside constructor 2017-04-14 23:26:58 -04:00
Matthew Brown
60be6f07a0 Delay checks for MissingPropertyType so we can give more useful messages 2017-04-14 23:09:34 -04:00
Matthew Brown
ce6ca58291 Fix #114 - add optional Hack-like checks calls 2017-04-14 21:32:14 -04:00
Vladimir Komissarov
818e3be00c Fix undefined global constant in closure 2017-04-14 17:03:09 +07:00
Matt Brown
7bcf7f13b1 Fix #137 - add for init in main scope 2017-04-11 17:43:46 -04:00
SignpostMarv
82c3a664a8 skip tests that extend SoapClient if SoapClient does not exist 2017-04-11 21:02:18 +01:00
Matt Brown
ed356bfbd0 Don’t mistake same-named functions for old-style constructors
Fixes #131
2017-04-10 11:03:19 -04:00
Matthew Brown
32efdfd0f7 Fix #129 - emit PossiblyNullFuntionCall when encountering such a thing 2017-04-08 11:38:06 -04:00
Matthew Brown
2d454d6e10 Fix #130 - check class exists before checking for __invoke 2017-04-08 11:15:17 -04:00
Matthew Brown
c663062816 Add PossiblyUndefinedArgument issue to cope with #126 2017-04-08 09:28:02 -04:00
Matthew Brown
7d17a07cd2 Fix #125 - allow abstract classes to reference methods only defined in interfaces 2017-04-07 19:16:25 -04:00
Matt Brown
f011197090 Fix #124 - don’t check array_filter closures when >2 args passed 2017-04-07 18:30:15 -04:00
Matthew Brown
40427839ea Get all variables possibly assigned in conditional 2017-04-06 22:56:37 -04:00
Matthew Brown
20b0460a33 Fix #123 - ternary byref vars now adjusted 2017-04-06 21:53:29 -04:00
Matt Brown
c09b0e459a Make is_numeric a proper type refinement 2017-04-06 18:06:24 -04:00
Matt Brown
e7aec27eae Prevent emitting issues when comparing mixed values 2017-04-06 17:40:15 -04:00
Matt Brown
da19b55db1 Add special TypeDoesNotContainNull issue as distinct from TypeDoesNotContainType 2017-04-06 15:36:22 -04:00
Matt Brown
14bb967c7d Warn when doing === comparisons on incompatible types 2017-04-06 14:53:45 -04:00
Matthew Brown
a63602ce45 change to trigger travis 2017-04-03 13:35:04 -04:00
Matthew Brown
89bf409537 Cast phpversion to string 2017-04-03 13:09:02 -04:00
Matthew Brown
431de10c5c Prevent array_filter test running on HHVM 2017-04-03 12:53:10 -04:00
Matt Brown
fe43c4e37f Fix #122 - allow multiple types of filtering 2017-04-03 12:36:49 -04:00
Matthew Brown
ce5b35169b Treat empty & !empty as special straddling types 2017-04-02 19:06:18 -04:00
Matthew Brown
a8220ba4f1 Fix bug where empty string could confuse 2017-04-02 18:28:06 -04:00
Matthew Brown
075cc5f50d Add by-reference clause removal 2017-04-02 17:37:56 -04:00
Matthew Brown
dcedd65215 Add check for paradoxical statements 2017-04-02 15:26:10 -04:00
Matthew Brown
83edf8c4db Complete the circle – fix remaining type algebra issue 2017-04-01 19:04:49 -04:00
Matt Brown
a4be86865d Skip Throwable in PHP < 7 2017-03-30 12:12:46 -04:00
Matt Brown
d06a199d25 Fix #121 - simplify all parameter types 2017-03-30 11:44:38 -04:00
Matthew Brown
a89018d9ae Only warn about issues in files that we’re trying to scan 2017-03-24 18:34:46 -04:00
Matthew Brown
7ed188fa52 Add support for conditional stubbed functions 2017-03-19 15:41:24 -04:00
Matthew Brown
cbd7a4520c Add support for namespaced function definitions 2017-03-19 15:37:07 -04:00
Matthew Brown
f096468536 Don’t forget where a type came from when combining 2017-03-19 14:39:05 -04:00
Matthew Brown
3452c7853f Add support for capturing clauses from elseifs 2017-03-18 14:04:26 -04:00
Matthew Brown
469cee1b80 Add a bunch of elseif tests to fix 2017-03-18 13:37:13 -04:00
Matthew Brown
c33e66813a Move type algebra functionality to separate checker 2017-03-18 13:37:00 -04:00
Matthew Brown
e687887ba3 Emit an InvalidReturnType when it should contain null, and introduct LessSpecificReturnType 2017-03-18 12:18:17 -04:00
Matthew Brown
9edae64ee2 Add a few more edge-casey tests 2017-03-18 01:34:29 -04:00
Matt Brown
30e8e1880d Add another easy calculation of clauses 2017-03-16 14:45:45 -04:00
Matt Brown
cecfe25df7 Update outer clauses in mic drop situation 2017-03-16 11:46:07 -04:00
Matt Brown
04363237c5 Fix #116 - be more lenient with static vars 2017-03-15 15:21:00 -04:00
Matt Brown
7fad81edac Fix issue with unset var in loop 2017-03-15 11:38:23 -04:00
Matthew Brown
c0a646bbc5 Add test for tail-set var 2017-03-14 20:16:41 -04:00
Matthew Brown
6cfe540c98 Fix issue evaluating elseif empty assertions 2017-03-14 15:48:52 -04:00
Matthew Brown
9dd94d099f Fix issue with possibly-redefined switch vars 2017-03-14 02:00:38 -04:00
Matthew Brown
50b629e88e Update context types after switch statement without default case 2017-03-13 21:17:21 -04:00
Matt Brown
b3bb8b72cc Add additional tests 2017-03-13 18:07:36 -04:00
Matt Brown
20791bfae6 Add third loop test 2017-03-13 11:53:16 -04:00
Matt Brown
7a652ee4bf Add tests for things we do not want to emit errors 2017-03-13 11:22:42 -04:00
Matthew Brown
a7da88bad3 Improve solution to allow for more user errors 2017-03-11 12:32:27 -05:00
Matthew Brown
39b9afcdac Fix issue running isset after empty array check 2017-03-11 12:05:23 -05:00
Matthew Brown
048d7f0142 Fix #110 - failure to eliminate false from array|false on isset 2017-03-05 23:47:53 -05:00
Matt Brown
f9f38f283e Emit issue when property type is not defined 2017-03-02 12:19:18 -05:00
Matt Brown
864d242f13 Improve labelling of referencing expressions 2017-03-01 11:56:36 -05:00
Matt Brown
7baf942eaa Prevent false positives after extract call 2017-02-27 10:52:43 -05:00
Matthew Brown
cd5f727d2e Collect explicit references to classes/methods 2017-02-26 23:09:18 -05:00
Matt Brown
182f715b62 Add dead code detection for possibly unused public methods 2017-02-23 19:52:23 -05:00
Matt Brown
0049e4deb4 Fix #105 and also the issues found in its wake 2017-02-23 19:36:51 -05:00
Matthew Brown
fa3b292fd4 Fix #101 - restrict the values of pass-by-ref variables 2017-02-23 00:25:28 -05:00
Matthew Brown
47de866601 Fix issue using abstract methods from traits 2017-02-22 01:25:51 -05:00
Matt Brown
2c7ffb6f4c Add support for negating some while assertions 2017-02-21 16:52:27 -05:00
Matt Brown
99dd3ba5de Move loop scope tests into separate file 2017-02-21 16:33:20 -05:00
Matt Brown
c6a625c16e Fix #102 - be more lenient about whether a type can be reconciled 2017-02-21 16:15:39 -05:00
Matthew Brown
30c5977825 Fix issue with do statement breaking 2017-02-18 17:49:34 -05:00
Matthew Brown
e61ea17db5 Move FileChecker functionality into separate, better-contained classes 2017-02-18 13:41:27 -05:00
Matthew Brown
9137727993 Fix #99 - treat null coalesce more respectfully 2017-02-17 20:50:47 -05:00
Matthew Brown
9579460c59 Fix #97 - is_callable shouldn’t prevent evaluation of calls to existing functions 2017-02-16 20:51:53 -05:00
Matthew Brown
32dd5d5512 Be better about dealing with byref args when not checking functions 2017-02-15 01:47:03 -05:00
Matt Brown
83a978ea80 Fix array_filter on string-keyed arrays 2017-02-13 19:16:25 -05:00
Matthew Brown
c41c873d33 Add exception messages to TypeTest.php 2017-02-13 01:13:22 -05:00
Matthew Brown
0277ca49ba Add config creation utility 2017-02-12 23:59:43 -05:00
Matthew Brown
a87ea78efc Fix variable-scoped byref issue 2017-02-12 19:07:25 -05:00
Matthew Brown
81e24de76f Fix invalid NullPropertyFetch warning 2017-02-12 18:06:18 -05:00
Matthew Brown
9061d36566 Don’t emit InvalidArrayAccess if ignoring null arrays 2017-02-12 17:13:03 -05:00
Matthew Brown
b80628b1c4 Convert all templated properties to most acceptable type 2017-02-12 14:10:34 -05:00
Matthew Brown
2f2b487236 Fix #96 2017-02-12 12:31:39 -05:00
Matthew Brown
1029e68341 Allow TNamedObject to be coerced to TObject 2017-02-12 00:50:37 -05:00
Matthew Brown
deb11c9402 Change some errors from InvalidReturnType to MoreSpecificReturnType 2017-02-11 18:25:44 -05:00
Matthew Brown
35e4b380cc Add collection of PossiblyNull* issues 2017-02-11 17:55:08 -05:00
Matthew Brown
14c487d3e6 Always supply default template params as return type 2017-02-10 22:51:47 -05:00
Matthew Brown
1d6c441d16 Use a more fault-tolerant version of php-parser 2017-02-10 21:27:12 -05:00
Matt Brown
c0a6fc9125 Fix #90 - add genericised stubs for common array functions 2017-02-10 18:12:59 -05:00
Matthew Brown
8ffd45407c Add support for namespaced templates 2017-02-10 00:14:44 -05:00
Matthew Brown
4a82c0a09a Add support for nested types in templates 2017-02-09 22:57:23 -05:00
Matthew Brown
5e8a40a5a1 Merge pull request #94 from vimeo/template-tags
Add support for templating
2017-02-09 20:51:23 -05:00
Matthew Brown
98b0ed280c Add support for templating 2017-02-09 20:35:17 -05:00