Matthew Brown
|
8f9b4098bc
|
Allow scalar to work with false
Fixes #718
|
2018-05-08 22:18:58 -04:00 |
|
Matthew Brown
|
2c0dd36035
|
Fix get type return types
|
2018-05-08 22:01:05 -04:00 |
|
Matthew Brown
|
5c39fb5ab1
|
Fix #716 - uss string inference to inform property names
|
2018-05-08 21:21:22 -04:00 |
|
Matthew Brown
|
c1440c11dc
|
Create separate file for magic properties
|
2018-05-08 20:25:39 -04:00 |
|
Matthew Brown
|
e50ef8bf03
|
Support __invoke return types
|
2018-05-08 19:49:25 -04:00 |
|
Tyson Andre
|
9a9f6d1856
|
Make the string concatenation of two known values into a known value (#717)
* Make the string concatenation of two known values into a known value
address review comments
* Add vim temporary files to .gitignore
|
2018-05-08 19:11:18 -04:00 |
|
Matt Brown
|
6e259bed03
|
Always evaluate closures, even when passed as mixed call args
|
2018-05-08 18:11:10 -04:00 |
|
Matt Brown
|
53ff05783c
|
Clean up code slightly
|
2018-05-08 17:43:26 -04:00 |
|
Matt Brown
|
4f678f5f99
|
Fix bad comparisons
|
2018-05-08 17:42:02 -04:00 |
|
Matt Brown
|
03ea65cff8
|
Don’t complain about false values on properties when we don’t care
|
2018-05-08 16:57:16 -04:00 |
|
Matt Brown
|
bc17d23788
|
Fix mixed empty checks
|
2018-05-08 16:34:08 -04:00 |
|
Matt Brown
|
3c9e42f884
|
Fix string assertion for ternaries
|
2018-05-07 17:52:18 -04:00 |
|
Matt Brown
|
f858924b60
|
Fix erroneous string matching after oring
|
2018-05-07 17:40:16 -04:00 |
|
Matt Brown
|
6460d907f9
|
Improve array handling when offsets hard to define
|
2018-05-07 16:22:04 -04:00 |
|
Matt Brown
|
c0729a02cd
|
Fix remaining issues with logic checks
|
2018-05-07 14:52:45 -04:00 |
|
Matthew Brown
|
61aeea6375
|
Fix whole bunches of things
|
2018-05-07 01:26:06 -04:00 |
|
Matthew Brown
|
3b9b4a8a6f
|
Improve binary op function layout
|
2018-05-06 12:11:40 -04:00 |
|
Matthew Brown
|
c31f787f7c
|
Convert DNF conditions to CNF
|
2018-05-06 12:11:40 -04:00 |
|
Matthew Brown
|
04bd492360
|
Fix erroneous scope resolution
|
2018-05-05 20:52:10 -04:00 |
|
Matthew Brown
|
8d8fdad924
|
Always set array offset type
|
2018-05-05 17:50:19 -04:00 |
|
Matthew Brown
|
21261172a8
|
Fix #713 - support offsets of known array types
|
2018-05-05 17:30:18 -04:00 |
|
Matthew Brown
|
85c69f1335
|
Make sure div operations return GMP too
|
2018-05-05 13:14:59 -04:00 |
|
Matthew Brown
|
3718bd5c61
|
Fix GMP arithmetic operations
|
2018-05-05 12:59:30 -04:00 |
|
Matthew Brown
|
1a4ddc7cdd
|
Support value types (#707)
* Add first idea
* Add initial count experiments
* Remove false positives
* Fix getId to support changes in conditionals
* Add better tests
* Strip types when not exists
* Fix array offsets
* More fixes
* Add class constant value types
* Clone constants everywhere
* Don’t complain unnecessarily
* Be more lenient with possibly invalid __sets
* Fix mixed issues
* Fix bug concerning orred string equality
* Remove unnecessary casts
|
2018-05-03 13:56:30 -04:00 |
|
Matt Brown
|
521237dc56
|
Fix #705 - don’t be so strict about undefined constants
|
2018-05-03 13:20:42 -04:00 |
|
Matthew Brown
|
7ccc17cd98
|
Fix #324 - improve undefined array handling
|
2018-05-02 20:10:08 -04:00 |
|
Matthew Brown
|
15e1003c37
|
Warn about impossible empty
|
2018-04-30 22:13:13 -04:00 |
|
Matthew Brown
|
1946bc0085
|
Allow resource to be cast to string
|
2018-04-30 00:19:35 -04:00 |
|
Matthew Brown
|
99da371ac4
|
Move memoisation after callmap branch
|
2018-04-28 13:49:27 -04:00 |
|
Matthew Brown
|
496256c2a5
|
Make memoisation more universal
|
2018-04-28 13:49:21 -04:00 |
|
Matthew Brown
|
da6209276f
|
Allow ability to memoize empty method calls based on config
|
2018-04-28 13:05:43 -04:00 |
|
Matt Brown
|
a0984cdaf1
|
Fix #697 - make missing objectlike fields an InvalidArgument
|
2018-04-27 17:10:57 -04:00 |
|
Matthew Brown
|
048a32e7b6
|
Also check incremental overflows ref #691
|
2018-04-24 23:12:01 -04:00 |
|
Matthew Brown
|
35725267f9
|
Fix #691 - Allow comparisons to float for integer results
|
2018-04-24 23:02:20 -04:00 |
|
Matthew Brown
|
19ccdbc08b
|
Remove unnecessary foreach
|
2018-04-24 21:15:33 -04:00 |
|
Matthew Brown
|
3e7e1b3020
|
Fix #694 - remove descendent vars when possibly reassigning
|
2018-04-24 21:02:07 -04:00 |
|
Matthew Brown
|
2fabdf3353
|
Fix #314 - add a way to indicate @method list is comprehensive
|
2018-04-22 00:40:30 -04:00 |
|
Matthew Brown
|
1c7568e612
|
Fix #642 - allow @method to override existing methods
behind usePhpDocMethodsWithoutMagicCall="true"
|
2018-04-21 23:08:08 -04:00 |
|
Matthew Brown
|
8b50cdf315
|
Fix #632 - add support for @method annotations when method can’t be found
|
2018-04-21 22:44:54 -04:00 |
|
Matthew Brown
|
d02b148820
|
Fix #633 - support @method for magic __call methods
|
2018-04-21 22:13:10 -04:00 |
|
Matt Brown
|
0882b9c0f9
|
Fix #687 - interpret unpacked arguments in array_push and array_unshift
|
2018-04-20 17:14:38 -04:00 |
|
Matt Brown
|
8d7c365e5f
|
Fix #679 - improve template param type checks
|
2018-04-20 10:52:23 -04:00 |
|
Matt Brown
|
1f3837d972
|
Fix #686 - allow undefined class inside class_exists call
|
2018-04-19 12:16:00 -04:00 |
|
Matt Brown
|
f3b579b06a
|
Fix #685 - ignore assignment in conditional
|
2018-04-19 11:58:51 -04:00 |
|
Matthew Brown
|
a5f639d879
|
Fix array type conversion
|
2018-04-18 23:49:09 -04:00 |
|
Matthew Brown
|
392f3194c0
|
Fix #684 - use getIterator return type for IteratorAggregate functions
|
2018-04-18 23:47:21 -04:00 |
|
Matt Brown
|
9099a0972b
|
Remove bad variable check
|
2018-04-18 12:10:49 -04:00 |
|
Matt Brown
|
4ee0298558
|
Always panic when two types can never be the same
|
2018-04-18 12:01:13 -04:00 |
|
Matt Brown
|
5b7d190640
|
Emit RedundantCondition when asserting two variables can never be equal
|
2018-04-17 15:39:09 -04:00 |
|
Matt Brown
|
5a2f6ff0e0
|
Fix #624 - change some innaccurate issue names
|
2018-04-17 14:07:02 -04:00 |
|
Matt Brown
|
6afaf5aae9
|
Make Psalm compatible with PHP Parser 4
|
2018-04-17 13:06:02 -04:00 |
|
Matt Brown
|
df5d369443
|
Fix #677 - handle get_class checks more accurately
|
2018-04-17 10:28:49 -04:00 |
|
Matt Brown
|
b28cc19fd2
|
Fix bitwise operations on strings
|
2018-04-16 18:19:18 -04:00 |
|
Matt Brown
|
55153f9542
|
Fix #676 - bitwise operators didn’t have int return type
|
2018-04-16 16:36:06 -04:00 |
|
Matt Brown
|
3cc549384f
|
Type explode more accurately
|
2018-04-16 16:03:04 -04:00 |
|
Matt Brown
|
3cf5345728
|
Improve codebase mixed coverage calculation by ignoring initial loops
|
2018-04-13 17:26:07 -04:00 |
|
Matt Brown
|
6502eba658
|
Don’t invalidate object vars after callmap functions
|
2018-04-13 11:24:59 -04:00 |
|
Radosław Kowalewski
|
0ea053bda1
|
Fix detecting relative paths on windows
Fixes vimeo/psalm#655
|
2018-04-12 16:08:50 -04:00 |
|
Matthew Brown
|
f9b6027bbc
|
Fix relative path includes on windows
|
2018-04-11 20:56:11 -04:00 |
|
Matt Brown
|
6e6ae7aaa6
|
Only complain about redundant conditions when check_variables is true
|
2018-04-11 14:37:01 -04:00 |
|
Matt Brown
|
6426dbbf0e
|
Propagate array key updates after assertions to base array
|
2018-04-11 14:19:42 -04:00 |
|
Matt Brown
|
fe46e4e63d
|
Make tests a bit more specific
|
2018-04-10 15:47:04 -04:00 |
|
Matthew Brown
|
f15c26d7f4
|
Change how type impossibilities are treated to improve message types
|
2018-04-10 01:27:26 -04:00 |
|
Matthew Brown
|
5f47374606
|
Fix indentation
|
2018-04-09 21:50:38 -04:00 |
|
Matt Brown
|
7640b00635
|
Only check functionlike arguments match if we know params
|
2018-04-09 18:49:11 -04:00 |
|
Matt Brown
|
47255fb19b
|
Fix array key check after direct assignment
|
2018-04-09 18:02:45 -04:00 |
|
Matt Brown
|
af63d28b56
|
isset always returns bool
|
2018-04-09 10:20:18 -04:00 |
|
Matt Brown
|
cf6326f5e6
|
Fix #658 - empty always returns bool
|
2018-04-09 10:19:23 -04:00 |
|
Matthew Brown
|
3fe9a0606e
|
Fix #654 - warn about MixedArgument when inferredType property does not exist
And handle str_replace more leniently when args unknown
|
2018-04-07 15:16:46 -04:00 |
|
Matthew Brown
|
0f0f405b9f
|
Allow mixed property assignment when the user wants it
Fixes #652
|
2018-04-07 12:13:30 -04:00 |
|
Matt Brown
|
60c6bb4021
|
Fix #650 - be more judicious about inserting mixed into places
|
2018-04-06 18:28:22 -04:00 |
|
Matt Brown
|
c932ed7764
|
Fix #651 - allow Psalm to understand assertions on properties of array objects
|
2018-04-06 16:23:10 -04:00 |
|
Matt Brown
|
4927dfd337
|
Fix issue with InvalidArrayOffset from falsable
|
2018-04-05 13:57:01 -04:00 |
|
Matt Brown
|
24f307d568
|
Fix #645 - add isa- prefix for strings as well as class constants
|
2018-04-05 12:03:36 -04:00 |
|
Matthew Brown
|
03b3a764e3
|
Fix #641 - allow is_a to operate on strings as well
|
2018-04-03 23:14:23 -04:00 |
|
Matthew Brown
|
4552e69ef2
|
Allow classes to be instantiated by their name only
Ref #641
|
2018-04-03 22:20:00 -04:00 |
|
Matthew Brown
|
ef37f0cfe8
|
Fix #626 - check __invoke methods
|
2018-03-31 18:57:13 -04:00 |
|
Matthew Brown
|
6a6d6465f5
|
Fix #619 - don’t use capitalised letters to discriminate classes
|
2018-03-30 19:04:21 -04:00 |
|
Matthew Brown
|
c8c216edb2
|
Fix #610 - add slightly hacky check for multiple callmap options
|
2018-03-30 18:51:59 -04:00 |
|
Matt Brown
|
fd9e783a37
|
Emit InvalidDocblock for bad static keyword in @var
Ref #623
|
2018-03-27 11:34:48 -04:00 |
|
Matthew Brown
|
44cccb5b3d
|
Fix build
|
2018-03-27 01:05:11 -04:00 |
|
Matthew Brown
|
fb802540d6
|
Fix variadic format cc @TysonAndre and allow callable param types
Ref #580
|
2018-03-27 00:12:41 -04:00 |
|
Matthew Brown
|
58115599a1
|
Add support for callable(...) syntax
Ref #580
|
2018-03-26 22:13:10 -04:00 |
|
Matthew Brown
|
ccbe9980f5
|
Fix issue with nested trait methods
|
2018-03-21 17:39:01 -04:00 |
|
Matthew Brown
|
49c4dd8a5d
|
Fix trait method aliasing
|
2018-03-21 16:55:31 -04:00 |
|
Matthew Brown
|
1f57876e48
|
Allow extract array to be passed by ref
|
2018-03-21 11:14:05 -04:00 |
|
Matthew Brown
|
452fd2e7c9
|
Make UndefinedClass an explicit class-related issue
|
2018-03-21 10:17:57 -04:00 |
|
Matthew Brown
|
49820b06dd
|
Prevent variadic args disrupting required closure param count
|
2018-03-21 09:04:07 -04:00 |
|
Matthew Brown
|
9404de699d
|
Allow list vars to have array keys
|
2018-03-21 08:48:30 -04:00 |
|
Matthew Brown
|
be72423980
|
Check for magic __call when analysing callables
|
2018-03-21 00:13:57 -04:00 |
|
Matthew Brown
|
7a5d4b8516
|
Fix the right thing
|
2018-03-20 23:55:26 -04:00 |
|
Matthew Brown
|
75e76eb327
|
Perform more granular scan for PossiblyInvalidPropertyAssignmentValue
|
2018-03-20 23:44:26 -04:00 |
|
Matthew Brown
|
f47012823e
|
Fix incorrect issue type emitted for static properties
|
2018-03-20 23:19:26 -04:00 |
|
Matthew Brown
|
b634e1a1b7
|
Add more refined treatment of InvalidIterator
|
2018-03-20 22:59:22 -04:00 |
|
Matthew Brown
|
5384f193d1
|
Allow class and method issues to be suppressed by their identifiers
Ref #603
|
2018-03-20 22:36:03 -04:00 |
|
Matthew Brown
|
d17058e7d5
|
Fix #608 - only check callable type if string/array is not also there
|
2018-03-20 08:58:05 -04:00 |
|
Matthew Brown
|
8dcb878af4
|
Fix #606 - fatal error when evaluating array_key_exists
|
2018-03-19 19:14:55 -04:00 |
|
Matthew Brown
|
8b102d891c
|
Allow intersection types in callable args
|
2018-03-18 20:29:41 -04:00 |
|
Matthew Brown
|
0defe84e01
|
Allow use of $argv and $argc in function use statements
|
2018-03-18 17:11:14 -04:00 |
|
Matthew Brown
|
80cf80dbda
|
Reduce number of InvalidOperand issues further
|
2018-03-18 16:58:54 -04:00 |
|
Matthew Brown
|
e0bdfeb625
|
Fix erroneous message for invalid right operands
|
2018-03-18 16:46:26 -04:00 |
|
Matthew Brown
|
d7a585160f
|
Add more granular error messages for invalid operands
|
2018-03-18 16:39:34 -04:00 |
|
Matthew Brown
|
33be97b1f8
|
Check for to-string casts in strict operands mode
|
2018-03-18 14:42:23 -04:00 |
|
Matthew Brown
|
4b014eaee1
|
Fix #600 - don’t implicitly convert object name to string
|
2018-03-18 14:16:47 -04:00 |
|
Matthew Brown
|
025b7049fd
|
Allow $argv/$argc to be accessed from namespace
|
2018-03-18 10:38:08 -04:00 |
|
Matthew Brown
|
28522c4f94
|
Fix #588 - allow anonymous classes to call $this functions
|
2018-03-18 01:07:14 -04:00 |
|
Matthew Brown
|
2e0aded816
|
Fix issue with empty checks and array_key_exists for property keys
|
2018-03-17 19:28:01 -04:00 |
|
Matthew Brown
|
b0b3c9287e
|
Fix array_key_exists calls on possibly undefined objectlike
|
2018-03-17 19:03:46 -04:00 |
|
Matthew Brown
|
4175d1a887
|
Add PossiblyUndefinedVariable warning when using possibly undefined array key
|
2018-03-17 17:35:36 -04:00 |
|
Matthew Brown
|
61af2a924c
|
Fix #575 - generated possibly-undefined keys when scanning objectlike return types
Ref #458
|
2018-03-17 16:53:11 -04:00 |
|
Matthew Brown
|
eb3750d8f3
|
Remove unnecessary @var annotations
|
2018-03-17 00:19:55 -04:00 |
|
Matt Brown
|
e5e0c56abc
|
Don’t remove clauses on mixed, just substitute for wedges
|
2018-03-15 16:40:22 -04:00 |
|
Matt Brown
|
651b375c62
|
Fix #579 - improve checks for meta-type negation
|
2018-03-15 14:25:04 -04:00 |
|
Matthew Brown
|
5cd8b3cccd
|
Don’t ignore @function calls
Fixes #570
|
2018-03-12 23:48:10 -04:00 |
|
Matt Brown
|
19ee843d6c
|
Emit InvalidOperand if both sides are not numeric
|
2018-03-08 14:30:40 -05:00 |
|
Matt Brown
|
56bdb924f5
|
Fix #563 - improve error message and ignore falsable issues for strtotime
|
2018-03-08 14:04:00 -05:00 |
|
Matt Brown
|
4873228e52
|
Fix #561 - add all the do-defined vars before checking loop
|
2018-03-08 11:17:27 -05:00 |
|
Matt Brown
|
cd521e7ba5
|
Also flesh out object like array types
|
2018-03-07 13:54:46 -05:00 |
|
Matt Brown
|
4bf652863b
|
Also check for non-false returns on LessSpecificReturnType
|
2018-03-07 11:16:56 -05:00 |
|
Matt Brown
|
4248cacbaf
|
Flesh out template type before replacing
|
2018-03-06 14:23:41 -05:00 |
|
Matt Brown
|
6d767de043
|
Ignore nullable class strings where appropriate
|
2018-03-06 14:11:32 -05:00 |
|
Matt Brown
|
fac5554e13
|
Fix errors around static class constants in template vars
|
2018-03-06 13:59:59 -05:00 |
|
Matt Brown
|
b664c85642
|
Add new issue conditional on config flag
|
2018-03-06 12:19:50 -05:00 |
|
Matt Brown
|
357ad1aa82
|
Add config flags to allow stricter class invocation checks
|
2018-03-06 11:20:59 -05:00 |
|
Matt Brown
|
57bbdc8034
|
Replace classlike name with more accurate context self
|
2018-03-05 18:05:12 -05:00 |
|
Matt Brown
|
7c5986de01
|
Add return type checks for missing classes
|
2018-03-05 17:46:13 -05:00 |
|
Matt Brown
|
aff689deea
|
Add support for __CLASS__ in template types
|
2018-03-05 17:36:08 -05:00 |
|
Matt Brown
|
57c2adb923
|
Fix #558 - add extra tests around functionality
|
2018-03-05 17:10:52 -05:00 |
|
Matt Brown
|
850998ed1a
|
Add class-string type for enforcing use of ::class constants
|
2018-03-05 16:06:06 -05:00 |
|
Matt Brown
|
d8825701f5
|
Fix #556 - closure params with defaults can still accept extra
|
2018-03-05 10:29:19 -05:00 |
|
Matthew Brown
|
67cad2063d
|
Fix #555 - fix function name mapping class
|
2018-03-05 09:01:24 -05:00 |
|
Matthew Brown
|
806b032b13
|
Downgrade UndefinedMethod to PossiblyUndefinedMethod issue when one type has __call defined
|
2018-03-04 13:23:40 -05:00 |
|
Matthew Brown
|
ecef628e21
|
Prevent iterating over undefined class
|
2018-03-03 16:52:04 -05:00 |
|
Matthew Brown
|
d94abc42e8
|
Fix array location
|
2018-03-02 08:38:16 -05:00 |
|
Matthew Brown
|
ee6a9b98fb
|
Allow arrays to be called (ugh)
|
2018-03-02 00:49:53 -05:00 |
|
Matthew Brown
|
154341577d
|
Give expected/actual argument counts
|
2018-03-02 00:07:19 -05:00 |
|
Matthew Brown
|
799e81bc96
|
Improve callable issue message
|
2018-03-02 00:03:07 -05:00 |
|
Matthew Brown
|
6fbd8753d5
|
Fix $function_id when checking for method existence
|
2018-03-01 23:52:11 -05:00 |
|
Matthew Brown
|
cc19f50c04
|
Prevent missing classes from confounding callable arg checks
|
2018-03-01 23:43:52 -05:00 |
|
Matthew Brown
|
6660aa8a00
|
Fix #548 - check array_map/array_filter args for param matches
|
2018-03-01 23:33:21 -05:00 |
|
Matt Brown
|
1f358e36ef
|
Fix #544 - remove possibly assigned try vars from catch initialisations
|
2018-02-27 11:25:27 -05:00 |
|
Matthew Brown
|
47cb74ddd1
|
Fix issue where namespaced function could be treated as root
|
2018-02-25 11:13:00 -05:00 |
|
Matt Brown
|
ad3fe0974f
|
Fix indentation
|
2018-02-23 15:41:07 -05:00 |
|
Matt Brown
|
441506ad6f
|
Fix #216 - scan assert* functions for assertions, then apply to current context
|
2018-02-23 15:39:33 -05:00 |
|
Matt Brown
|
09d708981a
|
Add mixed checks to property __set calls
|
2018-02-21 19:34:21 -05:00 |
|
Matt Brown
|
e04c4f866c
|
Fix #524 - prevent fatal error when checking stubbed function from namespace
|
2018-02-21 11:32:52 -05:00 |
|
Tyson Andre
|
7aeacebba4
|
Fix possible typos in comments and issue messages
|
2018-02-19 15:35:13 -05:00 |
|
Tyson Andre
|
aea3779c96
|
Fix unused imports in psalm, wrong param order doc comments (#523)
(Some of the imports appear as strings elsewhere in the same file)
|
2018-02-18 17:55:11 -05:00 |
|
Matthew Brown
|
59dc239c89
|
Fix #522 - prevent interface instantiation
|
2018-02-17 18:53:02 -05:00 |
|
Matthew Brown
|
a0e88cb16f
|
Fix #518 - improve dead code detection to cover variable method calls
|
2018-02-17 17:23:57 -05:00 |
|