Tyson Andre
d71ed7b9e9
Fix curl_multi_getcontent signature ( #4580 )
2020-11-16 21:47:33 -05:00
Matt Brown
42802e11d1
Allow PHP major version to determine substr return type
2020-11-16 16:31:33 -05:00
Lukas Reschke
6780b01453
Add more Psalm flows for string functions ( #4576 )
...
This adds string functions from
https://www.php.net/manual/en/ref.strings.php
This commit adds the flows for functions from "addcslashes" to "sprintf".
More are to follow in later commits.
Ref #3636
2020-11-16 15:50:07 -05:00
Dusk
0fe3e1f83b
Allow named arguments to variadic functions ( #4575 )
...
Closes #4563
2020-11-16 15:49:27 -05:00
Lukas Reschke
09abcfb650
Add sinks for popen and proc_open ( #4572 )
...
User input in those two functions could lead to a RCE.
popen: https://www.php.net/manual/en/function.popen.php
proc_open: https://www.php.net/manual/en/function.proc-open.php
2020-11-16 15:04:22 -05:00
Thomas Mauro Vargiu
4e8fb9c37f
Fix #4549 Better intersection between parent types ( #4560 )
2020-11-15 20:29:49 -05:00
Lukas Reschke
5df2b771aa
Fix typo ( #4555 )
2020-11-15 20:28:51 -05:00
Lukas Reschke
fd06167843
$expr->name is not prefixed with $ ( #4554 )
...
The example as-is would currently not flag the following code:
```
public function foo() {
$foo = $bad_data;
\shell_exec($foo);
}
```
Switching it to `bad_data` made it work.
2020-11-15 20:28:24 -05:00
orklah
6f8b463860
Detect trying to access to a list with a negative offset ( #4552 )
2020-11-15 20:26:50 -05:00
Matt Brown
5b004a1d11
Fix #4558 - Don’t convert value-of to key-of template
2020-11-15 18:33:07 -05:00
Matt Brown
26b4cd1fb9
Fix #4529 - allow unsetting with complex array key
2020-11-14 08:57:25 -05:00
Matt Brown
f65868c023
Fix style
2020-11-13 16:43:36 -05:00
Matt Brown
d97c8b750a
Add closure-use termination for byref flows
2020-11-13 13:37:27 -05:00
Matt Brown
e7e5904d2d
Remove unused uses in Psalm’s codebase
2020-11-13 13:16:39 -05:00
Matt Brown
2e47ca51d5
Fix #4547 - mark unused uses
2020-11-13 13:13:29 -05:00
Matt Brown
57125c7106
Uses by ref should be assigned that way
2020-11-13 12:50:01 -05:00
Matt Brown
4c1cf37d52
Improve error message for UnusedVariable
2020-11-13 12:36:17 -05:00
Matt Brown
086237aab7
Fix #4544 - improve handling of get_class in match
2020-11-13 11:55:42 -05:00
Matt Brown
13b83e6132
Fix #4545 - allow intersections in more places
2020-11-13 09:43:30 -05:00
Matt Brown
2992cc73c2
Split out trait template tests
2020-11-13 08:59:55 -05:00
Matt Brown
5a62dc5c40
Fix #4540 - use correct method when simulating property setting
2020-11-12 23:56:29 -05:00
Matt Brown
556fb12966
Move mutation checks to more appropriate place
2020-11-12 23:54:50 -05:00
Matt Brown
ec9762ce61
Prevent the same interface, repopulated, from confusing matters
2020-11-12 15:52:13 -05:00
Matt Brown
58c47ab32c
Fix build
2020-11-12 14:22:54 -05:00
Matt Brown
3dd185e395
Fix #4537 - use more rigorous inerhitance for return and param types
2020-11-12 13:54:27 -05:00
Matt Brown
929efcc1ac
Use the same docblock as the source params, if possible
2020-11-12 09:14:40 -05:00
Matt Brown
b7551e712a
Use better way to determine which signture to use
...
Fixes #4524
2020-11-11 19:22:23 -05:00
Matt Brown
2f7bf2a144
Bind lower bounds to upper bounds as well when no upper bound can be inferred
...
Ref #4485
2020-11-11 17:46:09 -05:00
Matt Brown
a8d7248c31
Fix #4524 - do better template param inheritance
2020-11-11 13:25:17 -05:00
Matt Brown
5ad1e80e99
Fix #4527 - improve interpolated string types
2020-11-11 00:38:26 -05:00
Matt Brown
5a5cbb2892
Increase nesting
2020-11-10 18:27:28 -05:00
Matt Brown
165e0db157
Fix style
2020-11-10 16:19:24 -05:00
Matt Brown
46ebca4497
Fix coalesce operation tainting
2020-11-10 14:36:36 -05:00
Matt Brown
a82a9558d2
Experiment with refactor
2020-11-10 12:50:17 -05:00
Matt Brown
b731b53d5e
Add debug stuff for code complexity
2020-11-10 12:49:42 -05:00
Matt Brown
81babf2430
Clone to prevent incorrect references
2020-11-10 09:01:46 -05:00
Matt Brown
e27cbfba57
Reduce size of data flow graph when analysing array assignments
2020-11-09 22:44:36 -05:00
Adrien LUCAS
4cb8e86737
Add a proxy
capability to the flow annotation ( #4495 )
...
* Add a `passthru` capability to the flow annotation
* Fix passthru-calls type
* Fix types and rename to proxy
* Allow to proxy a method
Co-authored-by: Matthew Brown <github@muglug.com>
2020-11-09 15:22:35 -05:00
Matt Brown
32d526bde9
Add descendant variables for closure uses
...
Fixes #4522
2020-11-09 15:20:28 -05:00
Matt Brown
e97a9c86eb
Fix #4517 - track type contradiction issues in match expressions
2020-11-09 10:00:53 -05:00
Matt Brown
3aaa1d8447
Fix #4516 - treat exit() as the empty type
2020-11-09 08:44:03 -05:00
Matt Brown
683546e024
Fix #4519 - prevent crash with empty match
2020-11-09 08:36:59 -05:00
Matt Brown
8799e1a337
Break apart complex method
2020-11-09 00:58:45 -05:00
Matt Brown
edf5bac845
Ignore ReflectionUnionType
2020-11-08 20:29:08 -05:00
Matt Brown
6acd667e55
Fix #4509 - treat expression-derived constants as mixed
2020-11-08 15:36:38 -05:00
Matthew Brown
43f6921efa
Update MixedOperand.md
2020-11-08 14:41:08 -05:00
Matt Brown
ab2ab826d2
Add slashes
2020-11-08 14:34:09 -05:00
Matt Brown
0be4f2fedf
Fix/ignore reflection bugs
2020-11-08 14:27:37 -05:00
Wouter J
58318282c5
Add support for PHP 8 union types ( #4505 )
2020-11-08 14:23:03 -05:00
Matt Brown
114440cb81
Add ReflectionUnionType stub
2020-11-08 14:22:32 -05:00