Matt Brown
|
fe46e4e63d
|
Make tests a bit more specific
|
2018-04-10 15:47:04 -04:00 |
|
Matt Brown
|
fe033f1b6c
|
Fix #663 - infer array return types for closures
|
2018-04-10 13:05:31 -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
|
5915718013
|
Fix #660 - always refer closure types
|
2018-04-09 22:00:36 -04:00 |
|
Matt Brown
|
47255fb19b
|
Fix array key check after direct assignment
|
2018-04-09 18:02:45 -04:00 |
|
Matt Brown
|
6eabdf326d
|
Fix display of closure objects
|
2018-04-09 16:45:54 -04:00 |
|
Matt Brown
|
2b9a2d36cf
|
Don’t allow non-existent vars to be overridden
|
2018-04-09 14:32:22 -04:00 |
|
Matt Brown
|
cf6326f5e6
|
Fix #658 - empty always returns bool
|
2018-04-09 10:19:23 -04:00 |
|
Matthew Brown
|
0b95f1017e
|
Fix issues with callmap callable types
|
2018-04-08 12:57:56 -04:00 |
|
Matthew Brown
|
7e3a1ec9c3
|
Add support for checking callable/closure param types
Fixes #580
|
2018-04-08 12:03:35 -04:00 |
|
Matthew Brown
|
797cab22f8
|
Fix support for Closure(int):int annotation
|
2018-04-08 10:02:41 -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 |
|
Matthew Brown
|
3771ea206c
|
Fix #648 - stop scanning when encountering a duplicate class
|
2018-04-07 11:38:41 -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
|
6d572096d6
|
Prohibit bad characters from types
|
2018-04-05 14:11:57 -04:00 |
|
Matt Brown
|
4927dfd337
|
Fix issue with InvalidArrayOffset from falsable
|
2018-04-05 13:57:01 -04:00 |
|
Matt Brown
|
0b268eb602
|
Allow scalars to be empty
|
2018-04-05 12:11:58 -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
|
78d5adb17d
|
Make key work with typed arrays
|
2018-04-05 00:21:14 -04:00 |
|
Matt Brown
|
1282f74931
|
Allow coercion from generic array to objectlike with possible keys
|
2018-04-04 18:01:53 -04:00 |
|
Matt Brown
|
b4fba8f805
|
Allow capitalised reserved words
|
2018-04-04 12:39:05 -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 |
|
Matt Brown
|
fef56c7633
|
Fix #639 - add scalar to psalm-recognised types
|
2018-04-03 11:24:23 -04:00 |
|
Matthew Brown
|
1395299e28
|
Fix #637 - allow int|string array key types to be compared to mixed
|
2018-04-02 22:40:29 -04:00 |
|
Matthew Brown
|
4ff7db09f9
|
Fix var_export return type
Fixes #636
|
2018-04-02 22:19:58 -04:00 |
|
Matt Brown
|
734b6915db
|
Fix #635 - type combinations should copy over possibly undefined flag
|
2018-04-02 14:36:33 -04:00 |
|
Matthew Brown
|
faa2d6f2e1
|
Fix #634 - prevent prefixing objectlike keys with namespaces
|
2018-04-02 00:39:59 -04:00 |
|
Matthew Brown
|
ef37f0cfe8
|
Fix #626 - check __invoke methods
|
2018-03-31 18:57:13 -04:00 |
|
Matthew Brown
|
3a77504730
|
Add test to find bad behaviour
|
2018-03-30 19:15:24 -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 |
|
Matthew Brown
|
2a544c3076
|
Fix #560 - ignore @param $var annotations
|
2018-03-30 17:46:12 -04:00 |
|
Matthew Brown
|
17b27b31e8
|
Fix erroneous input/output lines
|
2018-03-29 10:26:26 -04:00 |
|
Matthew Brown
|
7a0c7f4d1e
|
Improve handling of ||
Ref #630
|
2018-03-29 02:20:19 -04:00 |
|
Matthew Brown
|
211b87ce8d
|
Add test for empty callable
|
2018-03-28 10:53:26 -04:00 |
|
Matt Brown
|
3213695c95
|
Fix off-by-one error
Fixes #625
|
2018-03-27 14:43:39 -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
|
3ef7073862
|
Add callmap updates from Phan
|
2018-03-27 01:05:37 -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
|
74aa376ec7
|
Fix #617 - catch exception on bad square brackets
|
2018-03-24 21:02:44 -04:00 |
|
Matt Brown
|
f5ef864168
|
Improve checks to prevent breaking existing typehints when running psalter
|
2018-03-23 16:34:45 -04:00 |
|
Matt Brown
|
06e850867d
|
Allow combined keys to be possibly undefined
|
2018-03-23 13:14:00 -04:00 |
|
Matthew Brown
|
a4a618c9e5
|
Fix rules regarding always-defined object-like properties
|
2018-03-23 01:36:56 -04:00 |
|
Matthew Brown
|
7637eb5075
|
Allow possibly undefined object-like vars to not cause problems
|
2018-03-23 01:13:46 -04:00 |
|
Matthew Brown
|
a96ce89e9f
|
Allow arbitrary bracketing of types
|
2018-03-22 22:28:06 -04:00 |
|
Matthew Brown
|
5ff6f27178
|
Fix #615 - numeric-string is always still a string
|
2018-03-22 21:48:26 -04:00 |
|
Matthew Brown
|
c8fe9e89f3
|
Fix parsing of array{a:int}[]
Fixes #614
|
2018-03-22 21:21:04 -04:00 |
|
Matt Brown
|
cc3aafe4c4
|
Improve intersection type parsing
|
2018-03-22 17:55:36 -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
|
c2002d0250
|
Add intersection iteration test
|
2018-03-21 12:21:46 -04:00 |
|
Matthew Brown
|
bc0c4322d5
|
Allow object-like with all optional vars to be compared to empty array
|
2018-03-21 10:46:21 -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
|
7a5d4b8516
|
Fix the right thing
|
2018-03-20 23:55:26 -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
|
837f5d7096
|
Fix #594 - support intersection types (and catch errors)
|
2018-03-20 20:56:33 -04:00 |
|
Matthew Brown
|
3f90bceabf
|
Use objects for type parsing
|
2018-03-20 20:26:58 -04:00 |
|
Matt Brown
|
24490aac0e
|
Fix #609 - fix callable coercion in reconciliation step
|
2018-03-20 13:24:16 -04:00 |
|
Matthew Brown
|
b8a8e9bc5b
|
Add two skipped (bug-identifying) tests
|
2018-03-20 09:30:37 -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
|
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
|
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
|
6b793db5c6
|
Allow some intersection types
Fixes #600 Ref #594
|
2018-03-18 13:57:28 -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
|
e61815bb72
|
Fix #458 - fully support optional array keys
|
2018-03-17 18:05:50 -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
|
def0d87782
|
Add test for phpstorm generic property
|
2018-03-17 15:40:57 -04:00 |
|
Matthew Brown
|
3578c49bf2
|
Add test for #587
|
2018-03-17 15:02:25 -04:00 |
|
Matthew Brown
|
10d18481a2
|
Add syntax support for optional array types
Ref #458
|
2018-03-16 23:37:10 -04:00 |
|
Matt Brown
|
d6e0708e88
|
Fix #577 - allow int in second param of strpos
|
2018-03-15 17:32:03 -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 |
|
Matt Brown
|
a253463ba8
|
Use strings for numeric string key offsets
|
2018-03-15 10:16:11 -04:00 |
|
Matt Brown
|
822d0a116e
|
Reflect all numeric types passed to abs
Fixes #576
|
2018-03-14 18:05:36 -04:00 |
|
Matt Brown
|
92ada48433
|
Allow the iterable pseudo-type to be treated as array|Traversable
Fixes #574
|
2018-03-14 17:50:55 -04:00 |
|
Matt Brown
|
d9ab5e62d6
|
Prevent unnecessary warnings when checking trait-required methods
|
2018-03-14 10:51:13 -04:00 |
|
Matt Brown
|
0bd229a86f
|
Add better checks for trait-related fatal errors
|
2018-03-13 18:12:05 -04:00 |
|
Matt Brown
|
52b6a5cbde
|
Fix #571 - fix buggy handling of packed vars
|
2018-03-13 13:50:41 -04:00 |
|
Matt Brown
|
ef35cfc6fe
|
Fix #566 - check for abstract methods inheriting from non-abstract ones
|
2018-03-13 12:52:00 -04:00 |
|
Matthew Brown
|
5cd8b3cccd
|
Don’t ignore @function calls
Fixes #570
|
2018-03-12 23:48:10 -04:00 |
|
Matthew Brown
|
3059a54768
|
Fix #569 - fix trait method mapping bug
|
2018-03-12 23:37:21 -04:00 |
|
Matt Brown
|
b54fb06552
|
Handle variable paths in a less naive fashion
Fixes #564
|
2018-03-08 15:57:46 -05: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 |
|
Matthew Brown
|
67312be2a9
|
Fix #562 - allow if/else blocks to initialise vars
|
2018-03-08 09:30:31 -05:00 |
|
Matt Brown
|
79c373c121
|
Add more LessSpecificReturnTypeTests
|
2018-03-07 13:11:36 -05:00 |
|
Matt Brown
|
692edd44c9
|
Use properly namespaced generic object
|
2018-03-07 12:00:33 -05:00 |
|
Matt Brown
|
4bf652863b
|
Also check for non-false returns on LessSpecificReturnType
|
2018-03-07 11:16:56 -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
|
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
|
a0ce8791d3
|
Detect fatal issues where property access is overridden
Fixes #547
|
2018-03-04 12:24:50 -05:00 |
|
Matthew Brown
|
b90a58533b
|
Fix tests and return types
|
2018-03-03 15:25:35 -05:00 |
|
Matthew Brown
|
e419a8fe01
|
Exit early when there’s an issue in block-level elements
Fixes #550
|
2018-03-03 13:20:41 -05:00 |
|
Matthew Brown
|
ee6a9b98fb
|
Allow arrays to be called (ugh)
|
2018-03-02 00:49:53 -05:00 |
|
Matthew Brown
|
54cbee1265
|
Add TooManyArguments for closure test
|
2018-03-02 00:12:41 -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
|
2846e549dd
|
Fix #546 - allow iterable phpstorm generics
|
2018-03-01 11:19:23 -05:00 |
|
Matt Brown
|
80864b1ce8
|
Don’t be concerned about unused params named $_
Fixes #540
|
2018-02-27 11:39:26 -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
|
115e647c3c
|
Fix #543 - register static vars properly so their references can be caught
|
2018-02-26 19:32:26 -05:00 |
|
Matt Brown
|
93b714d7c8
|
Fix #541 - make array_map on object-like more accurate
|
2018-02-26 11:01:30 -05:00 |
|
Matt Brown
|
9d165bee7b
|
Fix generic return type for array_map
Ref #541
|
2018-02-26 10:39:48 -05:00 |
|
Matthew Brown
|
2be2769008
|
Don’t adhere to assert rules with ored truths
|
2018-02-25 11:30:45 -05:00 |
|
Matthew Brown
|
47cb74ddd1
|
Fix issue where namespaced function could be treated as root
|
2018-02-25 11:13:00 -05:00 |
|
Matthew Brown
|
956972b4a4
|
Fix #539 - evaluate global variable usage
|
2018-02-25 10:43:54 -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
|
95642aafb4
|
Fix #339 - when a class is also in the callmap, use the user-defined behaviour
|
2018-02-22 13:42:34 -05:00 |
|
Matt Brown
|
1f7d95dde0
|
Add better typing rules for generic objects
|
2018-02-22 11:20:03 -05:00 |
|
Matt Brown
|
09d708981a
|
Add mixed checks to property __set calls
|
2018-02-21 19:34:21 -05:00 |
|
Matt Brown
|
5471b89391
|
Make array coercion an error
|
2018-02-21 18:59:31 -05:00 |
|
Matt Brown
|
316dd78e6a
|
Fix #509 - don’t complain about a missing param type when system parent has one
|
2018-02-21 11:57:52 -05:00 |
|
Matt Brown
|
e04c4f866c
|
Fix #524 - prevent fatal error when checking stubbed function from namespace
|
2018-02-21 11:32:52 -05:00 |
|
Matthew Brown
|
a99e89495b
|
Add end line/column data for LSP support
|
2018-02-19 18:16:09 -05:00 |
|
Matthew Brown
|
81fd016120
|
Fix #193 - allow caching of storages
|
2018-02-19 00:27:39 -05:00 |
|
Matthew Brown
|
59dc239c89
|
Fix #522 - prevent interface instantiation
|
2018-02-17 18:53:02 -05:00 |
|
Matthew Brown
|
108ca54867
|
Fix #516 - make sure --find-references-to doesn’t output missing references
|
2018-02-17 17:45:30 -05:00 |
|
Matthew Brown
|
a0e88cb16f
|
Fix #518 - improve dead code detection to cover variable method calls
|
2018-02-17 17:23:57 -05:00 |
|
Matthew Brown
|
b041797cd0
|
Fix #519 - warn about variable calls on non-objects
|
2018-02-17 17:16:22 -05:00 |
|
Matthew Brown
|
e32eb5c93f
|
Speed up manipulation test by only turning on plugin once
|
2018-02-17 17:15:50 -05:00 |
|
Matthew Brown
|
af1155239e
|
Fix bug when assigning nested arrays with variable offsets
|
2018-02-17 12:32:19 -05:00 |
|
Matthew Brown
|
c87204acbf
|
Don’t check for unused vars when checking for initialiasations
Fixes #517
|
2018-02-17 12:02:31 -05:00 |
|
Matthew Brown
|
09f86ceee7
|
Introduce MissingDependency issue, separate from UndefinedClass
Ref #511
|
2018-02-17 11:36:20 -05:00 |
|
Matthew Brown
|
88ca7d2fa7
|
Fix #515 - make Psalm aware of variable array keys
|
2018-02-17 11:24:08 -05:00 |
|
Matthew Brown
|
7940268a13
|
Fix #512 - check for undefined constant in param default
|
2018-02-15 20:27:42 -05:00 |
|
Matthew Brown
|
a6b54a3607
|
Fix #513 - make sure numeric is treated like a number
|
2018-02-15 19:50:50 -05:00 |
|
Matt Brown
|
be75c143d4
|
Fix #510 - check that constructor parent classes and interfaces exist
|
2018-02-14 11:21:43 -05:00 |
|
Matt Brown
|
d0a2258806
|
Fix #508 - make sure trait missing property checks happen on correct file
|
2018-02-12 10:46:45 -05:00 |
|