Matthew Brown
4172952e8b
Fix #306 - add support for typing generators
2018-07-13 17:34:44 -04:00
Matthew Brown
a8a504c3b9
Fix #889 - allow variables defined in try
to avoid isset issues
2018-07-13 14:06:01 -04:00
Matthew Brown
677e6edcb1
Fix nullref
2018-07-13 09:58:35 -04:00
Matthew Brown
3a235ad757
Fix #887 - resolve get_class($c) === self::class to current class name
2018-07-13 09:52:15 -04:00
Matthew Brown
d41a9a8dcc
Fix #806 - allow specification of functions and static methods that exit
2018-07-12 23:26:08 -04:00
Matthew Brown
5ea8b86b7c
Resolve as many names as possible in the parsing stage
2018-07-12 21:25:06 -04:00
Matt Brown
7713c7a8d6
Use continue 2 in place of continue
2018-07-12 18:04:05 -04:00
Matt Brown
f6b15a4a5a
Fix #847 - only warn about LessSpecificReturnType when method is not overridden
2018-07-12 16:57:24 -04:00
Matt Brown
4f9d4b7094
Fix #885 - allow suppression of UndefinedMethod at method level
2018-07-12 12:12:28 -04:00
Matt Brown
c2bc8bde55
Fix #866 - prevent false positive inside do
2018-07-12 12:08:15 -04:00
Matt Brown
c498356f9d
Fix property map for static call prop
2018-07-11 13:01:03 -04:00
Matt Brown
8b3fa21b41
Fix #884 - don’t error on static calls that aren’t user defined
2018-07-11 12:05:50 -04:00
Matt Brown
42e1090647
Add support for static method call assertions
2018-07-11 11:32:12 -04:00
Matt Brown
661803a020
Fix #883 - add @psalm-assert-if-true support to methods
2018-07-11 11:22:07 -04:00
Matt Brown
0ef71a49cb
Fix #882 - allow STDOUT and STDERR as constants
2018-07-10 17:40:34 -04:00
Tyson Andre
66f6d4b1ea
Allow empty default of 0
for optional parameter in magic method ( #880 )
...
Fixes #879
`!= ''` will reject both null and '', but not `0`
2018-07-10 16:01:44 -04:00
Matt Brown
5bb5bb2476
Check this properties for redundant conditions
2018-07-10 12:32:53 -04:00
Matthew Brown
21001668df
Don’t double-quote string
2018-07-10 00:39:33 -04:00
SignpostMarv
3eb027d371
875 addendum ( #876 )
...
* testing port
* testing return values with port
* removing redundant assertions
* forgot to return ¬_¬
* Fix build
2018-07-10 00:08:53 -04:00
Matt Brown
166706a35d
Fix #875 - improve return types for parse_url
2018-07-09 14:37:14 -04:00
Matt Brown
bbf48bbdfe
Fix #873 - allow unpacking of all iterables
2018-07-09 09:59:51 -04:00
Matthew Brown
3b12ce4a31
Fix #874 - add support for is_iterable
2018-07-09 08:31:43 -04:00
Matthew Brown
cd4bb75d80
Fix #871 - handle gettimeofday args
2018-07-07 20:35:24 -04:00
Matthew Brown
0d62431cfb
Fix #870 - improve magic method type handling
2018-07-07 00:06:05 -04:00
Tyson Andre
a3b1bebb5b
Fix misuse of preg_quote ( #869 )
...
1. Variable ids can contain slashes or dots, e.g. for `${'my/var'} = 2`
or psalm's local representation of properties or array indexes
(I forget which)
2. preg_quote's escape character should **always** be the same as the
pattern starting character.
Using DIRECTORY_SEPARATOR will fail to escape '/' on windows.
2018-07-06 19:16:31 -04:00
Matt Brown
e62b711c36
Fix docblock
2018-07-06 14:14:24 -04:00
Matt Brown
a887d09ca9
Fix #867 - make some system constant types more broad
2018-07-06 13:35:36 -04:00
Matt Brown
7e09f59825
Fix #868 - improve return type of version_compare
2018-07-06 13:09:05 -04:00
Matthew Brown
ced0aef34d
Clean out assertions before re-examining loop
2018-07-06 00:36:11 -04:00
Matthew Brown
8a4d7e12bd
Fix issues found by scanning PHPCS
2018-07-05 23:02:09 -04:00
Matthew Brown
c4fd6aa18d
Allow break/continue inside do
2018-07-05 21:03:44 -04:00
Matthew Brown
8bdeb5ed65
Fix #864 - only create intersection types when dealing with classes & interfaces
2018-07-05 19:46:33 -04:00
Matt Brown
71b2420c83
Fix #865 - support literals in return types
2018-07-05 17:25:26 -04:00
Matt Brown
af14d6982f
Fix #863 - MixedTypeCoercion is more appropriate in many cases
2018-07-05 10:11:04 -04:00
Matthew Brown
5cb23b7f47
Always scan class if autoloaded from same location
2018-07-04 15:33:48 -04:00
Matthew Brown
6090355241
Add possible fix for unevaluated classlikes
2018-07-04 14:32:58 -04:00
Matthew Brown
7d747be5d5
Fix checks for possibly null right part of binary op
2018-07-03 19:52:40 -04:00
Matt Brown
b8636eb326
Improve memoisation of chained calls
2018-07-03 12:45:29 -04:00
Matt Brown
534876085d
Fix #857 - improve handling of hard-to-reconcile while conditionals
2018-07-03 12:27:14 -04:00
Matt Brown
4a4d091c02
Fix #858 - scan files before autoloading them
2018-07-03 11:17:52 -04:00
Matthew Brown
ec1f7ba7be
Add exception for case that shouldn’t appear
2018-07-03 08:09:00 -04:00
Matthew Brown
5623aa1c19
Don’t memoise assertions - it messes with trait analysis
2018-07-03 00:51:57 -04:00
Matthew Brown
5860fcf59d
We can reason about ORed conditions in while loops now
2018-07-02 23:46:51 -04:00
Matthew Brown
76e369d330
Allow multiple matching types to be captured in if
2018-07-02 22:53:17 -04:00
Matthew Brown
c354a024d8
Fix #856 - perform better class filtering based on parent classes
2018-07-02 21:59:40 -04:00
Matt Brown
6287f52dd5
Fix loop analysis for byref vars, likely performance hit
2018-07-02 16:44:32 -04:00
Matthew Brown
16e270f0ee
Improve loading of stub file and autoload file information
...
Ref #849
2018-06-30 15:29:37 -04:00
Matthew Brown
745acaea71
Allow bracketing as part of union type
...
Ref #854
2018-06-30 13:09:05 -04:00
Matthew Brown
bca3b1797c
Fix #852 - improve handling of variables updated in do conditional
2018-06-30 12:56:42 -04:00
Matthew Brown
5ed062257b
Allow dead code detection to capture last do checks
2018-06-30 11:08:51 -04:00
Matthew Brown
6267fa7d1d
Fix #850 - allow is_numeric to refine scalar type
2018-06-30 10:52:45 -04:00
Matthew Brown
b5c89084fc
Fix #851 - prevent null being removed in simplifyUnionType
2018-06-30 10:38:37 -04:00
Matt Brown
1ca5ef9bf7
Prevent duplicate classes in same file
2018-06-29 15:39:17 -04:00
Matt Brown
7dc982138d
Fix possibly null DuplicateClass issue
2018-06-29 15:31:17 -04:00
Matt Brown
89cc63846f
Improve handling of autoloaded files
...
Fixes #848
2018-06-29 15:28:45 -04:00
Matthew Brown
c1052c0a6a
Only create intersections for types that don’t contain each other
2018-06-29 00:49:46 -04:00
Matt Brown
5f251a9d88
Allow intersection creation of interface then class
2018-06-28 18:13:06 -04:00
Matt Brown
c872f9179e
Remove mixed in @method param types
2018-06-28 17:39:25 -04:00
Matt Brown
2fc816a6e1
Fix repeated use of spread operator
2018-06-28 17:05:50 -04:00
Matt Brown
376c3c54c0
Add better checks for array_reduce
...
Fixes #846
2018-06-28 16:01:53 -04:00
Matthew Brown
ce1fda46a6
Fix hard-to-resolve constant values
2018-06-27 21:53:25 -04:00
Matt Brown
2c4b8e8ce3
Fix division-by-zero error
...
Fixes #844
2018-06-27 13:41:50 -04:00
Matt Brown
192d7769bd
Fix #843 - make FilesystemIterator::current more general
2018-06-27 12:04:24 -04:00
Matt Brown
72b110af3f
Analyse RHS of instanceof expressions if expression
2018-06-27 10:07:40 -04:00
Matthew Brown
685ae67435
Fix #839 - check args for __call methods
2018-06-26 23:11:16 -04:00
Matthew Brown
5867ef45ff
Check method args even if the methods themselves cannot be checked
2018-06-25 19:38:15 -04:00
Matt Brown
ffda44c3ba
Fix #838 - check assertions, even outside conditionals
2018-06-25 18:02:05 -04:00
Matt Brown
f2d96eefe7
Fix #837 - detect issues with constants
2018-06-25 15:03:45 -04:00
François Kooman
83dd5a9418
fix return value of ldap_explode_dn ( #835 )
2018-06-25 14:53:09 -04:00
Matthew Brown
23e90edc50
Fix SplFixedArray::__construct first arg can be left out
2018-06-25 00:03:09 -04:00
Matthew Brown
e1d922e9df
Add support for ignoredExceptions
2018-06-22 01:26:10 -04:00
Matthew Brown
e3ae1bf26f
Fix #15 - check for uncaught throws if config flag is set
2018-06-22 01:13:49 -04:00
Matt Brown
dcc2c7671e
Fix callmap regressions cc @jaydiablo
2018-06-20 15:41:09 -04:00
Matt Brown
ae5ff1abad
Improve callmap from Phan thanks to @ondrejmirtes
2018-06-20 13:55:14 -04:00
Matt Brown
740279352e
Fix #830 - unpack template param args appropriately
2018-06-20 10:40:50 -04:00
Matthew Brown
4688cf7a92
Fix #831 - ignore falsable issues when getting callmap function params
2018-06-20 09:09:03 -04:00
Matt Brown
e10b2c0fd4
Fix #805 - allow dead code detection from methods just called internally
2018-06-19 16:14:51 -04:00
Matt Brown
f7845616b6
Allow SplFileObject::current to return false
2018-06-19 14:06:20 -04:00
Matt Brown
11240eb193
Fix #826 allow better template replacements
2018-06-19 13:19:41 -04:00
François Kooman
89f78befa7
glob can return false ( #828 )
2018-06-19 10:15:05 -04:00
Matt Brown
2be0f68d87
Add better checks on increment/decrement operators
2018-06-18 13:16:51 -04:00
Matt Brown
75e2be8aec
Fix #825 - ignore falsable issues on builtin *methods*
2018-06-18 10:07:05 -04:00
Matthew Brown
d4107f9e5e
Fix issue erasing nullability of boolean
2018-06-17 13:47:31 -04:00
Matthew Brown
2c245b0a08
Fix #823 - trigger redundant condition on impossible assertions
2018-06-17 13:20:37 -04:00
Matthew Brown
5ddd74e7d2
Catch unused foreach key when it’s already in scope
2018-06-17 00:52:32 -04:00
Matthew Brown
805bfa6f2d
Improve handling of switch statement assignments
2018-06-17 00:12:26 -04:00
Matthew Brown
89affb6c2c
Fix #822 - improve dead code detection on assignop expressions
2018-06-16 23:40:25 -04:00
Matthew Brown
fa51c39902
Improve dead code analysis of switch statements
2018-06-16 21:54:44 -04:00
Matthew Brown
f38da967dd
Fix a few issues with dead code detection
2018-06-16 21:14:19 -04:00
Matthew Brown
3670f066bb
Improve dead code detection
2018-06-16 20:01:41 -04:00
Matt Brown
3afd6053fd
Fix #819 - only add is_a assertion if static::class known
2018-06-15 10:51:30 -04:00
François Kooman
1d8799ce70
fix PDOStatement::fetchColumn, can also return false
( #821 )
2018-06-15 10:51:00 -04:00
Matt Brown
47a40b2ffc
Fix #817 - allow methods named "global" in @method annotations
2018-06-14 17:20:02 -04:00
Matt Brown
7fb4c4acad
Allow 0 in type
2018-06-14 15:58:49 -04:00
Matt Brown
d56dd6bed6
Fix #818 - prevent class of 0
2018-06-14 13:49:16 -04:00
Matthew Brown
dc02ca8a7a
Fix - #816 - check we’re not just replacing a key with itself
2018-06-13 08:38:07 -04:00
Matt Brown
45a94af015
Fix #814 - remove literal types when removing base key
2018-06-12 11:19:35 -04:00
Matthew Brown
3891b08fc2
Fix #812 - deal with errant colon without crashing
2018-06-12 09:11:13 -04:00
Matt Brown
54893fdd55
Fix #808 - detect badly-placed ampersand early
2018-06-11 17:23:28 -04:00
Matt Brown
6542a0a784
Fix #810 - convert void array map return to null
2018-06-11 17:00:26 -04:00