bugreportuser
|
7f7125f334
|
Fix crash for empty string array access
|
2019-02-25 08:26:12 -05:00 |
|
Matthew Brown
|
4f770d356e
|
Fix #1384 - evaluate array fetches even when we don’t know function
|
2019-02-24 09:58:11 -05:00 |
|
Matthew Brown
|
3ad1abece4
|
Add generation of json artifacts
|
2019-02-24 01:33:25 -05:00 |
|
Matthew Brown
|
cdae79b9fe
|
Fix unnecessary params in Psalm codebase
|
2019-02-23 11:31:33 -05:00 |
|
Matthew Brown
|
ce4f2e6334
|
Fix #1364 - use proper types for extended getIterator calls
|
2019-02-21 23:01:34 -05:00 |
|
Matthew Brown
|
1c8a573b5f
|
Change TGenericParam to TTemplateParam
|
2019-02-21 21:40:06 -05:00 |
|
Brown
|
154e1fa38b
|
Fix #1375 - improve treatment of dynamically-declared namespaces
|
2019-02-21 18:19:12 -05:00 |
|
Brown
|
653555a8cc
|
Remove unused var
|
2019-02-21 17:49:33 -05:00 |
|
Brown
|
41b133178a
|
Improve handling of count comparisons
|
2019-02-21 17:17:10 -05:00 |
|
Brown
|
b7a0950aea
|
Prevent passing casts to byref vars
|
2019-02-21 13:26:37 -05:00 |
|
Brown
|
1e2c29041f
|
@param-out should not override @param byref type def
when checking for unuitialised vars
|
2019-02-20 18:53:42 -05:00 |
|
Brown
|
079ac44263
|
Prevent pass by ref when type type is given
|
2019-02-20 17:43:12 -05:00 |
|
bugreportuser
|
14ee221075
|
Fix errors
|
2019-02-20 10:55:36 -05:00 |
|
bugreportuser
|
cd23a19931
|
Allow concat for define first arg
|
2019-02-20 10:55:36 -05:00 |
|
Brown
|
348b8eef1f
|
Fix #1366 - don’t complain about invalid array offset when possibly mixed
|
2019-02-19 11:42:24 -05:00 |
|
Matthew Brown
|
f49be31aeb
|
Fix #1332 - use the correct identifier for trait property resolution
|
2019-02-18 16:52:09 -05:00 |
|
Matthew Brown
|
6b419452af
|
Fix #1337 - don’t crash when examining __call methods in initialisation checks
|
2019-02-18 16:04:27 -05:00 |
|
Matthew Brown
|
709a5c31da
|
Allow bitwise or ops to change type
Ref #1340
|
2019-02-18 12:53:55 -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
|
40a91eab6e
|
Fix #1339 - no crash when using self/static/parent in closure
|
2019-02-17 13:14:59 -05:00 |
|
Matthew Brown
|
0739d017ac
|
Use information from .phpstorm.meta.php files in stubs
|
2019-02-16 11:16:52 -05:00 |
|
Matthew Brown
|
d76459e138
|
Move to a PHPStan-like return type provider class model
|
2019-02-15 18:00:40 -05:00 |
|
Brown
|
27c99aed2f
|
Improve recovery from InvalidScalarArgument issue
|
2019-02-14 16:55:54 -05:00 |
|
Brown
|
50421b297a
|
Don’t report undefined properties when collecting initialisations
|
2019-02-13 14:04:10 -05:00 |
|
Brown
|
3deea3980d
|
Add checks for unitialized properties
Fixes #1328
|
2019-02-13 13:32:19 -05:00 |
|
Matthew Brown
|
c58100e3af
|
Fix #1313 - don’t allow mixed function calls
|
2019-02-10 16:15:52 -05:00 |
|
Matthew Brown
|
62fb8035bf
|
Fix #1309 - no PropertyNotSetInConstructor warnings for grandchild of class
|
2019-02-10 15:01:10 -05:00 |
|
Matthew Brown
|
ed4ed957c8
|
Use more specific templated argument
|
2019-02-07 15:21:34 -05:00 |
|
Matthew Brown
|
dfe45e7d26
|
Fix #1290 - improve handling of more specific template
|
2019-02-06 15:56:40 -05:00 |
|
Matthew Brown
|
6033345694
|
Fix #1281 - improve handling of mixed property array assignment
|
2019-02-05 00:36:57 -05:00 |
|
Brown
|
bbf013bfb8
|
Fix #1279 - speed up analysis of large arrays
|
2019-02-04 16:06:14 -05:00 |
|
Matthew Brown
|
ab22634d23
|
Fix #1274 - fix parent:: call to templated method
|
2019-02-04 00:52:31 -05:00 |
|
Matthew Brown
|
f06ed8bf84
|
Fix #1273 - don’t change type with unpacked var
|
2019-02-03 16:36:10 -05:00 |
|
Matthew Brown
|
e97d4f85ee
|
Break large CallAnalyzer funtions apart
|
2019-02-03 16:21:37 -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
|
3a01afbe0a
|
Refine inferred type when possible
|
2019-02-02 12:10:52 -05:00 |
|
Matthew Brown
|
db89b3cc3f
|
Add initial support for fixing MissingParamType
|
2019-02-02 11:28:48 -05:00 |
|
Matthew Brown
|
509709d6bc
|
Fix #1267 - flesh out self static property types
|
2019-02-01 08:59:01 -05:00 |
|
Brown
|
fd88f00526
|
Fix a few small bugs
|
2019-01-31 17:48:48 -05:00 |
|
Brown
|
2054e3753f
|
Fix #1260 - improve handling of ArrayAccess assignment
|
2019-01-31 12:45:47 -05:00 |
|
Brown
|
c195e8fd21
|
Add more nuanced analysis of array access fetch
|
2019-01-30 15:40:37 -05:00 |
|
Matthew Brown
|
bfb2a5c19e
|
Fix #1257 - transform docblock types for magic methods to something more meaningful
|
2019-01-30 09:46:23 -05:00 |
|
Brown
|
9edbae2bdc
|
Fix possible fatal when builtin function is called in array_filter
|
2019-01-28 17:54:50 -05:00 |
|
Brown
|
a801923502
|
Add support for SplQueue templating
|
2019-01-28 12:27:04 -05:00 |
|
Matthew Brown
|
45058ea494
|
Fix possible crash when class-string class doesn’t exist
|
2019-01-28 01:12:41 -05:00 |
|
Matthew Brown
|
be06393b9c
|
Fix #1251 - allow instanceof comparisons to class strings
|
2019-01-27 14:10:33 -05:00 |
|
Matthew Brown
|
16c2a0f899
|
Fix #1246 - check @var annotations
|
2019-01-26 17:30:44 -05:00 |
|
Matthew Brown
|
22ee72808a
|
Remove a bunch of hacks around generic offsets
Also fixes #1245
|
2019-01-26 16:58:49 -05:00 |
|
Brown
|
c9e1df510e
|
Fix #1241 - allow negative string offsets on a string
|
2019-01-25 10:23:50 -05:00 |
|
Brown
|
5352084188
|
Fix #1234 - apply @template-extends to inherited method signatures
|
2019-01-24 16:09:04 -05:00 |
|
Brown
|
8a97e32e16
|
Add code to make handling interfaces with magic get/set
Ref #1228
|
2019-01-23 16:58:50 -05:00 |
|
Brown
|
60e9d4f245
|
Don’t give up after method_exists if static method exists
|
2019-01-23 15:50:12 -05:00 |
|
Matthew Brown
|
8bc17e47be
|
Fix #1227 - allow genric params in @psalm-assert
|
2019-01-22 23:42:54 -05:00 |
|
Brown
|
51c6621925
|
Add property lookup
|
2019-01-22 11:10:37 -05:00 |
|
Matthew Brown
|
ea137fc20c
|
Don’t complain about mixed after unpacking arg
|
2019-01-21 17:42:25 -05:00 |
|
Matthew Brown
|
e0067e53c5
|
Fix param chosen to be expected
|
2019-01-21 17:35:55 -05:00 |
|
Matthew Brown
|
1b0c426c52
|
Improve error message when type cannot be inferred, fixes #1110
|
2019-01-21 17:29:12 -05:00 |
|
Matthew Brown
|
681391f970
|
Fix #1220 - improve constant resolution
|
2019-01-20 09:52:26 -05:00 |
|
Matthew Brown
|
7fa05abb5a
|
Remove unused vars
|
2019-01-20 01:52:58 -05:00 |
|
Matthew Brown
|
7dfcefd35d
|
Support intersections on LHS of static calls
|
2019-01-19 23:25:23 -05:00 |
|
Matthew Brown
|
394d6509c6
|
Restrict class-string types to named objects (and intersections)
|
2019-01-19 22:46:06 -05:00 |
|
Matthew Brown
|
ed68cb973d
|
Fix #1109 - add bad usort protection
|
2019-01-19 18:11:49 -05:00 |
|
Matthew Brown
|
9c5ef33997
|
Allow @property to override parent class property type
Fixes #1214
|
2019-01-19 14:26:27 -05:00 |
|
Matthew Brown
|
ee2b06ac43
|
Add initial support for @param-out
|
2019-01-19 13:32:43 -05:00 |
|
Matthew Brown
|
545c7e3cba
|
Fix #1211 - allow docblocks to override foreach type earlier
|
2019-01-19 11:31:51 -05:00 |
|
Matthew Brown
|
94af3b6c51
|
Add automatic inheritance to properties
Fixes #1210
|
2019-01-19 10:09:26 -05:00 |
|
Matthew Brown
|
b313971935
|
Remove unused code
|
2019-01-18 11:57:52 -05:00 |
|
Matthew Brown
|
eddaaea01b
|
Add support for static @method annotations
|
2019-01-18 11:37:52 -05:00 |
|
Matthew Brown
|
22ec7e537c
|
Fix #1208 - respect inheritance when combining in boolean operation
Also fixes issue reconciling inside trait
|
2019-01-18 10:08:16 -05:00 |
|
Matthew Brown
|
4ec7903e8b
|
Fix #390 - add support for object{foo:int, bar:string} annotation
|
2019-01-18 00:56:24 -05:00 |
|
Brown
|
d78c70d521
|
Add better messaging for MixedMethodCall
|
2019-01-17 14:04:40 -05:00 |
|
Brown
|
1ac51fcea6
|
Allow binding params of extended templates
Fixes #1207
|
2019-01-16 12:07:30 -05:00 |
|
Brown
|
8d61cb4816
|
Fix #1200 - no fatal error in array_map when not checking functions
|
2019-01-15 17:53:23 -05:00 |
|
Matthew Brown
|
3ca5ec9281
|
Fix templated class conversion allowing child class
|
2019-01-13 14:40:21 -05:00 |
|
Matthew Brown
|
bd9f2ec546
|
Add separate issue type for undefined interface method
|
2019-01-13 13:07:53 -05:00 |
|
Matthew Brown
|
0cca0d76cb
|
Fix #813 - allow constant array to be refined with isset
|
2019-01-13 11:54:39 -05:00 |
|
Matthew Brown
|
7e0928d775
|
Fix #833 - warn on some invalid operands
|
2019-01-13 10:15:15 -05:00 |
|
Matthew Brown
|
e9b7c9e08b
|
Fix #1129 - mock class method arguments should be evaluated
|
2019-01-13 09:49:34 -05:00 |
|
Matthew Brown
|
9ef1ce1535
|
Make @template-extends more robust
|
2019-01-12 18:18:23 -05:00 |
|
Matthew Brown
|
a49b5af3e9
|
Refactor the method call analyzer a little
|
2019-01-12 09:13:54 -05:00 |
|
Brown
|
1fddc19172
|
Add initial support for property types
|
2019-01-11 17:21:50 -05:00 |
|
Brown
|
cdbc63c99a
|
Fix #1195 - check assignments in byref
|
2019-01-11 14:57:21 -05:00 |
|
Brown
|
bf327f4933
|
Prevent echo removing all types
|
2019-01-11 14:46:03 -05:00 |
|
Brown
|
4ec8d1a8dd
|
Fix #1198 - add support for template param extends checks
|
2019-01-11 10:55:44 -05:00 |
|
Matthew Brown
|
d891c068b4
|
Fix #1197 - add support for method templating without override
|
2019-01-11 09:35:32 -05:00 |
|
Matthew Brown
|
ff958ef643
|
Fix inheritance of method params
|
2019-01-11 08:54:10 -05:00 |
|
Brown
|
9947bc56f6
|
Fix Psalm errors and improve error output
|
2019-01-10 19:18:02 -05:00 |
|
Brown
|
ddc2637fc5
|
Add support for @template-extends Foo<SomeClass>
|
2019-01-10 17:58:32 -05:00 |
|
Brown
|
f108badd03
|
Fix #1067 - add support for @template-extends
|
2019-01-10 16:59:44 -05:00 |
|
Brown
|
b8d822cd26
|
Prohibit leaking of template params across class boundaries
|
2019-01-10 12:13:49 -05:00 |
|
Matthew Brown
|
01e41951e7
|
Support backslash in is_a/is_subclass_of string name
|
2019-01-09 08:42:27 -05:00 |
|
Matthew Brown
|
11bfaaa5f7
|
Prevent crash in constructor checks
|
2019-01-09 08:35:53 -05:00 |
|
Brown
|
43bbd739a2
|
Fix generic param fetches
|
2019-01-08 16:55:53 -05:00 |
|
Matthew Brown
|
a89a201c71
|
Fix #1180 - array key maths was wrong
|
2019-01-08 09:56:54 -05:00 |
|
Matthew Brown
|
dfba6e0dec
|
Fix #1181 - prevent allowed memory errors with large conditionals
|
2019-01-08 09:19:33 -05:00 |
|
Brown
|
be337a03cf
|
Simplify output of method call complaints
|
2019-01-07 16:38:37 -05:00 |
|
Brown
|
14f456e160
|
Fix #1176 - always evaluate assignments in unknown function calls
|
2019-01-07 12:24:44 -05:00 |
|
Matthew Brown
|
a6357b413c
|
Don’t complain when rescanning file with function in
|
2019-01-06 17:03:13 -05:00 |
|
Matthew Brown
|
b19dd25881
|
Fix #742 - infer template type from closure
|
2019-01-06 12:16:09 -05:00 |
|
Matthew Brown
|
90e1648d5b
|
Fix #979 - be more conservative about method_exists handling
|
2019-01-06 09:36:25 -05:00 |
|
Matthew Brown
|
4d6031b39b
|
Fix #1172 - treat is_subclass_of similarly to is_a
|
2019-01-05 16:58:34 -05:00 |
|
Matthew Brown
|
c7723df8ff
|
Allow gettype vars to be compared to strings
|
2019-01-05 16:23:18 -05:00 |
|
Matthew Brown
|
8024b4e275
|
Add support for $a::class
|
2019-01-05 15:12:42 -05:00 |
|
Matthew Brown
|
f5378bdca8
|
Improve function call resolution
|
2019-01-05 14:50:11 -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 |
|
Matthew Brown
|
87052537cf
|
Fix #1167 - don’t worry about AbstractInstantiation when it could be a descendant
|
2019-01-04 12:28:00 -05:00 |
|
Matthew Brown
|
e5559e3012
|
Allow callables to be plain objects, and vice versa
Previously Psalm required they be *known* objects
|
2019-01-04 08:04:26 -05:00 |
|
Brown
|
2b4b55fd33
|
Add support for @return no-return
Fixes #1155
|
2019-01-02 17:05:39 -05:00 |
|
Brown
|
69d9fd7e28
|
Fix regression when reasoning about class strings
|
2019-01-02 11:35:49 -05:00 |
|
Matthew Brown
|
c4d024a72d
|
Check variable static calls
Fixes #1142 and #1160
|
2019-01-02 09:00:45 -05:00 |
|
Matthew Brown
|
901596281c
|
Fix #1143 - check some variable new calls
|
2019-01-02 06:58:49 -05:00 |
|
Matthew Brown
|
6fbf395f70
|
Fix #1152 - don’t complain about trait class-string comparisons
|
2019-01-01 21:00:34 -05:00 |
|
Matthew Brown
|
fab4d135b2
|
Fix static calls on class_aliased classes
|
2018-12-21 11:39:28 -05:00 |
|
Matthew Brown
|
947e3bf0f1
|
Fix crashes when analysing aliased class instances
|
2018-12-21 11:32:44 -05:00 |
|
Matthew Brown
|
c3a1e77a53
|
Fix errors in doctrine/dbal
|
2018-12-20 01:06:43 -05:00 |
|
Brown
|
fb848d62e9
|
Add checks for if (count($a)) and if (count($a) [operator] [number])
|
2018-12-19 16:15:19 -05:00 |
|
Brown
|
8e5e3564bc
|
Fix erroneous redundant condition warning
|
2018-12-19 16:10:09 -05:00 |
|
Matthew Brown
|
ea89a6ba29
|
Revert "First pass"
This reverts commit 9ed047234f .
|
2018-12-19 08:45:14 -05:00 |
|
Matthew Brown
|
9ed047234f
|
First pass
|
2018-12-19 01:59:14 -05:00 |
|
Matthew Brown
|
ca6149ed17
|
Improve treatment of templated params within function analysis
|
2018-12-17 23:29:27 -05:00 |
|
Brown
|
7b03e0159c
|
Prevent invalid static invocation
Fixes #1134
|
2018-12-17 17:48:13 -05:00 |
|
Brown
|
ca1a615026
|
Don’t call reconciliation on empty vars
|
2018-12-17 15:23:56 -05:00 |
|
Brown
|
699d763cc1
|
Make isset($a[foo]) imply $a is not a string
|
2018-12-14 18:52:29 -05:00 |
|
Brown
|
b7d4db892c
|
Fix #1130 - improve handling of invalid array offsets
|
2018-12-14 15:10:10 -05:00 |
|
Matthew Brown
|
a8851ff425
|
Improve handling of T::class when mixed is passed
|
2018-12-13 01:54:15 -05:00 |
|
Matthew Brown
|
8b5e8402a1
|
Add support for @param T:class $foo
|
2018-12-13 00:09:01 -05:00 |
|
Brown
|
970ea48b25
|
Fix checks around array empty checks
|
2018-12-11 13:50:26 -05:00 |
|
Brown
|
d9945a0ced
|
Fix issue re-asserting non-empty-mixed
|
2018-12-10 18:33:26 -05:00 |
|
Brown
|
fb19e510a7
|
Allow calls on non-empty-mixed too
|
2018-12-10 11:36:00 -05:00 |
|
Brown
|
ed4077f589
|
Be more lenient with mixed union calls
|
2018-12-10 11:28:05 -05:00 |
|
Matthew Brown
|
f0969cb3bb
|
Fix getId calls on callable return types
Ref #1119
|
2018-12-08 14:10:06 -05:00 |
|
Matthew Brown
|
fd0ab47b80
|
Fix #1118 - detect possible issues with unions of mixed
|
2018-12-08 13:18:55 -05:00 |
|
Matthew Brown
|
b7710f7cb9
|
Fix #1107 - be more lenient with possibly undefined array access when suppressed
|
2018-12-05 22:35:08 -05:00 |
|
Matthew Brown
|
f54a50ec7d
|
Fix #1116 - provide slightly clearer message when comparing a class string to a string
|
2018-12-05 22:29:06 -05:00 |
|
Matthew Brown
|
b32000fa05
|
Fix #689 - add checks for @internal annotations
|
2018-12-01 18:37:49 -05:00 |
|
Brown
|
9e4765663d
|
Fix #999 - respect @method annotations to redefine parent methods
|
2018-11-30 15:13:25 -05:00 |
|
Brown
|
b6446824be
|
Fix #1107 - emit PossiblyUndefinedArrayOffset where applicable
|
2018-11-30 13:27:21 -05:00 |
|
Matthew Brown
|
21f29e7385
|
Fix #1108 - add support for referencedFunction to UndefinedFunction
|
2018-11-29 23:19:33 -05:00 |
|
Matthew Brown
|
26947888f6
|
Add some basic support for class_alias
|
2018-11-29 00:05:56 -05:00 |
|
Matthew Brown
|
47f5f309ad
|
Remove support for get_class($a) === "somestring"
But it works with class constants
|
2018-11-28 23:59:43 -05:00 |
|
Brown
|
c378079db8
|
Make the length of possible string unions unlimited in conditionals
Fixes #1103
|
2018-11-28 15:12:08 -05:00 |
|
Brown
|
04b3fd2bb5
|
Fall through after more Possibly* issues
|
2018-11-28 11:45:54 -05:00 |
|
Brown
|
e7b63a86a6
|
Differentiate between types merged in a write context vs types merged in return
|
2018-11-28 10:41:49 -05:00 |
|
Matthew Brown
|
d90cff8f10
|
Add support for overriding method visibility too
|
2018-11-25 11:11:33 -05:00 |
|
Matthew Brown
|
047b096227
|
Add better support for intersection properties and mocks
|
2018-11-24 18:31:08 -05:00 |
|
Matthew Brown
|
e811ff5498
|
Allow generic types to be included in static return type
|
2018-11-23 13:24:35 -05:00 |
|
Matthew Brown
|
786ac6c4eb
|
Allow static to carry intersection types
|
2018-11-22 01:03:32 -05:00 |
|