24b008ee40
Fix
2022-08-17 13:19:25 +02:00
1401bf94db
Fix #8414
2022-08-17 13:11:27 +02:00
someniatko
be02e7e5c7
#8363 - support static
as a type parameter in return types of the first-class callables
2022-08-04 17:16:06 +03:00
someniatko
f3d67845c5
#8363 - ensure we recognize inherited static methods for the first-class callables
2022-08-04 17:01:42 +03:00
kkmuffme
0d32203f9a
add ", but" for InvalidArgument error message where a type is provided
2022-08-03 19:40:30 +02:00
Bitwise Operators
a5c550cea4
Fix incorrect handling of null response
2022-08-03 18:27:32 +02:00
Bitwise Operators
f782313c45
Add BitwiseNot and BooleanNot operators to SimpleTypeInferer. Should fix #8307 .
2022-08-03 15:48:54 +02:00
24f7920e9a
Fix if propagation ( #8326 )
...
* Add failing unit test
* Fix test
* Revert "Add comment for skipped test"
This reverts commit e4f73beb08
.
* Revert "Simplify context updates even more"
This reverts commit a32e63f131
.
* Revert "Remove special handling for elseifs that breaks for else if"
This reverts commit d7d9ddc653
.
* Fix test
2022-07-30 19:20:05 -04:00
Bruce Weirdan
c9e6b54050
CS fix
2022-07-29 23:08:11 -04:00
Bruce Weirdan
7444ea8e2d
Simplify some methods to keep Psalm happy
2022-07-29 23:01:49 -04:00
Bruce Weirdan
238b54abf8
Revert one particular replacement that confuses Psalm
2022-07-29 22:00:21 -04:00
Bruce Weirdan
58e87fa5e0
Applied ArraySpreadInsteadOfArrayMergeRector (take 2)
2022-07-29 18:17:21 -04:00
someniatko
0c652f72f6
#8330 - take into account that static
type may have been unwrapped in ExistingAtomicStaticCallAnalyzer#hasStaticInType()
2022-07-29 12:31:37 +03:00
orklah
7c4228fb56
Merge pull request #8324 from Nicelocal/fix_union_assertions
...
Fix union assertions
2022-07-28 19:06:14 +02:00
c409675e3e
Fix intersection of final classes
2022-07-27 18:46:07 +02:00
c2a8d1bb06
cs
2022-07-27 18:00:24 +02:00
09fb879428
Fix #8322 , #8319
2022-07-27 17:42:48 +02:00
18106af5e5
Refactor
2022-07-27 14:39:34 +02:00
AndrolGenhald
094621d5bb
Fix array-shape value type being mixed instead of single key being mixed.
2022-07-26 12:00:05 -05:00
AndrolGenhald
ee68184527
Fix key comparison when unpacking Traversables.
2022-07-26 12:00:05 -05:00
AndrolGenhald
2b389df270
Use count
instead of empty
.
2022-07-26 12:00:05 -05:00
AndrolGenhald
d54eebfe02
Fix various array spread issues.
...
- Correctly infer `array` and `list` instead of `non-empty-array` and `non-empty-list` (fixes #7296 )
- Add support for spreading string keys (fixes #7297 ).
- Show issue when trying to unpack non-iterable
- Show issue when trying to unpack iterable with non-array-key key
- Re-added invalid PHP 8.0 tests removed in #6613
- Unpacked lists with known keys will be inferred as eg `array{0: int, 1: int}<int<0, max>, int>` now but will still be treated as lists
- Unpacked arrays with known keys will now be inferred as eg `array{a: string, b: string}<int, int>` instead of `array<int|string, int|string>`
2022-07-26 12:00:03 -05:00
AndrolGenhald
ba6270c06a
Fix type reconciliation breaking Context::$references_in_scope ( fixes #8289 ).
2022-07-21 14:27:21 -05:00
Matt Brown
d7d9ddc653
Remove special handling for elseifs that breaks for else if
2022-07-17 12:51:17 -04:00
Matt Brown
8c716f8be7
Support taints in new $_GET["a"] calls
2022-07-15 22:17:59 -04:00
someniatko
931b3bb18b
#8200 - simplify ExistingAtomicStaticCallAnalyzer::hasStaticType()
2022-07-12 21:43:31 +03:00
someniatko
b3e673d7ec
#8200 - flip logic of determining "source" of static
type in ExistingAtomicStaticCallAnalyzer::getMethodReturnType()
2022-07-12 21:17:10 +03:00
someniatko
3a5054018b
#8200 - generalize ExistingAtomicStaticCallAnalyzer::hasStaticInType() for non-object cases
2022-07-12 21:00:19 +03:00
someniatko
470885e4f1
#8200 - improve inferring the "final" static
type when calling static methods inside a different class
...
differentiate between `static` defined in a class which CALLS a given static method, and `static` defined in the method which IS CALLED.
2022-07-12 13:51:28 +03:00
AndrolGenhald
285740a753
Merge branch '4.x'
2022-07-07 15:01:38 -05:00
orklah
7dff408b25
Merge pull request #8077 from boesing/bugfix/5657
...
Feature: allow non-union assertion types
2022-06-27 20:55:37 +02:00
orklah
b3038f0936
Merge pull request #8164 from AndrolGenhald/encapsed-literal-strings
...
Encapsed literal strings
2022-06-26 12:52:33 +02:00
AndrolGenhald
b671117417
Improve @psalm-internal and prevent usage of IssueBuffer::add().
2022-06-25 02:09:40 -05:00
AndrolGenhald
5ff54bce46
CS fix.
2022-06-24 21:03:33 -05:00
AndrolGenhald
3aea0987ef
Fix non-empty encapsed string check.
2022-06-24 20:28:04 -05:00
AndrolGenhald
2559222f67
More interpolation and concatenation improvements.
2022-06-24 19:22:59 -05:00
orklah
8b7bc07ad6
Merge pull request #8155 from Nicelocal/prohibition_analyzer_clone
...
Run method call prohibition analyzer when cloning
2022-06-25 01:31:00 +02:00
AndrolGenhald
450409f045
Infer literal string from encapsed (interpolated) string.
2022-06-24 17:24:34 -05:00
7a5120c4f7
Run method call prohibition analyzer when cloning
2022-06-24 12:37:33 +02:00
Matt Brown
15387d19cd
Track taints in static properties
2022-06-23 16:43:42 -04:00
Matt Brown
710768e496
Remove comma
2022-06-21 14:59:01 -04:00
Matt Brown
6fa0da9e37
Fix minor taint analysis bug with nested array assignment
2022-06-21 12:42:32 -04:00
f8724761b3
Fix parameter storage corruption
2022-06-13 10:28:33 +02:00
Maximilian Bösing
0d96766640
bugfix: single
does not mean that only one single atomic type is stored within a union
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-12 19:39:13 +02:00
Maximilian Bösing
3fd7a8b6d7
qa: refactor code to avoid too many nesting levels
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-12 19:27:54 +02:00
Maximilian Bösing
7e033d8051
bugfix: do not extend the type - only narrow down
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-12 19:20:38 +02:00
Maximilian Bösing
ed1bb8a9a6
bugfix: in case the old type is already more accurate than the new type, do not consider the new type as a replacement
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-12 03:35:59 +02:00
Maximilian Bösing
6a73fbd1d2
bugfix: tighten the detection of types which narrow down other types
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-12 02:51:36 +02:00
Maximilian Bösing
e13268f5c0
qa: use $assertion_var_id
over $arg_var_id
for better type reflection
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-12 01:33:13 +02:00
Maximilian Bösing
6c1ed90dc1
qa: ensure we use multiple isset
to verify the existence of $arg_var_id
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-12 01:29:30 +02:00
Maximilian Bösing
c68b6e9d26
bugfix: only allow narrowing down types in case the old type is not single
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-12 01:21:38 +02:00
Maximilian Bösing
4ee1b3feb4
bugfix: only extend existing logic instead of hijacking it
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-12 01:15:46 +02:00
Maximilian Bösing
2d9133b35a
bugfix: overriding types based on assertions have to pass more checks
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-12 00:32:36 +02:00
Maximilian Bösing
7c85e0c0d9
bugfix: only override templated values in case of literals
...
This will avoid issues with invalid intersection assertions.
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-11 23:30:52 +02:00
Maximilian Bösing
40971ff57d
bugfix: allow non-single union types in assertions
...
fixes #5657
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-09 00:26:34 +02:00
Matt Brown
a9775c656c
Fix style
2022-06-08 16:03:27 -04:00
Matt Brown
6d09c3c794
Remove nonsensical taint analysis rule
2022-06-08 16:00:06 -04:00
AndrolGenhald
af5c191e7b
Fix generic object comparison to use template constraint as default ( fixes #8068 ).
2022-06-07 19:12:36 -05:00
Bruce Weirdan
4e59398f77
Coerce null to empty string in array keys
...
Fixes vimeo/psalm#8063
Alters the fix for vimeo/psalm#2165 (1a48be8e9c
)
/cc: @iluuu1994, @muglug
2022-06-06 17:41:42 -04:00
Bruce Weirdan
e0acf22e40
Merge branch '4.x' into update-master
2022-05-28 14:49:12 -04:00
AndrolGenhald
6df50159a7
Fix trailing comma in parameter list for PHP 7.4.
2022-05-26 18:41:00 -05:00
AndrolGenhald
31b4dceaf4
Improve handling of unsupported references ( fixes #8018 ).
2022-05-26 18:28:23 -05:00
AndrolGenhald
80e94daefb
Fix class const issue when using floats declared in future consts ( fixes #7973 ).
...
- Calculate literal type for float arithmetic instead of only for int arithmetic
- Fix copy/paste fail causing InvalidConstantAssignmentValue to be marked as fixable
2022-05-20 14:46:05 -05:00
Matt Brown
990887148c
Fix #7968 - combine and simplify types where necessary in ternary analysis
2022-05-19 22:32:14 -04:00
Theodore Brown
4eef964048
Infer object shape when array or scalar is cast to object
...
Also detect redundant object casts.
Fixes #7916 , fixes #7934
2022-05-09 20:31:29 -05:00
Matt Brown
fccc366c1e
Merge pull request #7887 from ging-dev/lsp-fixes
...
improve LSP
2022-04-27 10:13:17 -04:00
Matt Brown
d064d9fc6c
Add test
2022-04-27 01:47:02 -04:00
Matt Brown
2ef993928c
Document @psalm-ignore-variable-*
2022-04-27 01:46:13 -04:00
Matt Brown
20351c6667
Avoid json_encode when serializing non-UTF8 literals
...
`\Psalm\Internal\Clause::$hash` basically holds a hash on
arbitrary input literals, used for later comparison. Using
`json_encode` fails when dealing with non-UTF8 literals,
which has been replaced by plain PHP `serialize`.
Resolves : #7771
2022-04-27 01:42:37 -04:00
hirokinoue
b132c3b751
fix error message
2022-04-16 14:05:40 +09:00
hirokinoue
a99532da5e
code format
2022-04-16 14:05:31 +09:00
hirokinoue
23c3d87dcc
don't emit issues when doing arithmetics on float templates
2022-04-16 14:05:20 +09:00
orklah
6d0cc07255
Merge pull request #7838 from VincentLanglet/sortTypes
...
Fix Incompatible types found for T (Stub&ProxyQueryInterface is not in ProxyQueryInterface&Stub)
2022-04-10 10:20:30 +02:00
Aleksandr Zhuravlev
b4fdc3e326
Made most of callbacks static. Reworked some array_map() into foreach()
2022-04-09 21:58:26 +12:00
Matthew Brown
c8cc3f4607
Add a more homogenous solution
2022-04-06 12:10:11 -04:00
Matthew Brown
4cfab0c441
Fix/ignore dependency issues
2022-04-06 11:45:28 -04:00
Matthew Brown
ed0daaa234
Undo previous commit
2022-04-06 11:45:13 -04:00
Matthew Brown
f3135949fe
Clone correct context
2022-04-06 11:36:26 -04:00
Thomas Landauer
587039fd1d
Fixing CS
2022-04-03 11:41:39 +02:00
Vincent Langlet
590ac22ea2
Use another strategy
2022-04-03 09:16:00 +02:00
Thomas Landauer
e87c25c825
Second attempt of #7835
2022-04-02 14:57:56 +02:00
b69e22a33b
Add a few additional dupes
2022-04-01 12:19:29 +02:00
Matthew Brown
a9f4148db2
Rename referenced_var_ids to cond_referenced_var_ids
...
Also reduce usage — this was a holdover of the old way of tracking unused variables
2022-03-15 18:40:31 -04:00
orklah
ebffd5258a
Merge pull request #7433 from zoonru/maximum_shaped_array_size
...
Add configuration for maximum size of shaped array
2022-03-15 21:19:05 +01:00
Matthew Brown
ed4782e0e0
Improve performance of large formula operations
2022-03-12 22:31:12 -05:00
Matthew Brown
427eecdcd8
Remove unnecessary switch statement code
2022-03-11 22:02:55 -05:00
Matthew Brown
4b0667bb14
Group some functionality together
2022-03-07 14:40:28 -05:00
Matthew Brown
9f9fefe7d6
Simplify loop logic a little
2022-03-02 18:49:57 -05:00
Matthew Brown
766fc174a3
Remove unnecessary $child_stmt
2022-03-02 17:34:56 -05:00
Matthew Brown
54edbdabf6
A little light refactoring
2022-03-02 17:27:58 -05:00
orklah
2f3c150690
merge fixes
2022-02-26 21:28:15 +01:00
orklah
0fe6eaf5d9
Merge remote-tracking branch 'upstream/4.x' into upstream-master13
2022-02-26 21:26:59 +01:00
orklah
fc2c6ab4d5
Merge pull request #7727 from AndrolGenhald/attribute-analysis-improvements
...
Attribute analysis improvements
2022-02-24 21:34:05 +01:00
orklah
26bfc95b13
allow SimpleTypeInferer to infer non empty lists
2022-02-24 20:57:29 +01:00
AndrolGenhald
5f9a8c9240
Fix types.
2022-02-23 22:12:32 -06:00
AndrolGenhald
43764f0c3d
Add Reflection getAttributes analysis.
2022-02-23 22:12:32 -06:00
orklah
3a85f49268
Merge pull request #7673 from VincentLanglet/pdoException
...
PDOException extends RuntimeException and can use int code errors
2022-02-23 13:45:57 +01:00
Bei Xiao
c9666bbeb5
Reduce method complexity
2022-02-22 20:50:43 +02:00
Bei Xiao
6a3b5679fe
Support interfaces extending enums
2022-02-22 16:04:56 +02:00
orklah
b8cda9eb00
Merge pull request #7684 from AndrolGenhald/bugfix/minor-reference-fixes
...
Fix some minor issues with references.
2022-02-20 23:21:56 +01:00
Bruce Weirdan
d7d846edc8
Merge branch '4.x' into upstream-master
2022-02-20 02:31:15 +02:00
Bruce Weirdan
97bd81cf5e
Merge pull request #7699 from AndrolGenhald/bugfix/int-range-unpacking
2022-02-19 00:04:32 +02:00
AndrolGenhald
9310a4ff5a
Fix issues with int range unpacking and with min/max.
2022-02-18 15:55:26 -06:00
Bruce Weirdan
6a68287700
Merge pull request #7696 from AndrolGenhald/improve-bool-to-int-cast
2022-02-18 22:17:29 +02:00
AndrolGenhald
525a86e19d
Improve bool to int casting.
2022-02-18 13:22:17 -06:00
AndrolGenhald
c1077f32d3
Improve documentation for InvalidGlobal to explain that it's sometimes valid.
2022-02-18 11:36:25 -06:00
AndrolGenhald
8f710cc37f
Fix crash when data_flow_graph is null.
2022-02-17 10:34:34 -06:00
AndrolGenhald
580278d323
Fix some minor issues with references.
...
References assigned to properties on `$this` should never be unused.
Using a `@var` docblock before a reference should be allowed if it targets a variable instead of the assignment statement.
2022-02-17 09:31:33 -06:00
Matthew Brown
6af3b502df
Remove unnecessary array assignment
2022-02-16 13:04:23 -05:00
Bruce Weirdan
e47752afb4
Merge pull request #7666 from AndrolGenhald/more-class-const-improvements
...
More class const improvements.
2022-02-16 03:43:37 +02:00
87d9a01f78
Add configuration for maximum size of shaped array
2022-02-15 14:09:08 +01:00
eb3df40fbb
Add option to disable @var parsing everywhere except for properties.
2022-02-15 10:04:56 +01:00
Vincent Langlet
694157b2e0
PDOException extends RuntimeException and can use int code errors
2022-02-14 21:04:10 +01:00
AndrolGenhald
cc2334f40d
More class const improvements.
...
Add InvalidClassConstType issue as alternative to LessSpecificClassConstType when type isn't contravariant.
Handle final class consts (#6395 ).
Use double quotes for types in class const issues.
2022-02-13 17:19:25 -06:00
orklah
1142c818c2
Merge remote-tracking branch 'upstream/4.x' into upstream-master9
2022-02-14 00:10:28 +01:00
orklah
97a6abd823
don't anonymize call to count to allow assertions on count to be retrieved
2022-02-13 22:38:38 +01:00
AndrolGenhald
fd0ecf2528
Rename variable to be consistent with existing convention.
2022-02-13 15:34:21 -06:00
AndrolGenhald
32c389482c
Fix issue with nested try
block and add more tests.
2022-02-13 15:30:06 -06:00
AndrolGenhald
7b1599d783
Fix false positive for unused variable in try ( fixes #7613 ).
2022-02-13 15:14:59 -06:00
orklah
59d3d2aa31
Merge pull request #7655 from orklah/enumCollapsing
...
Enum collapsing
2022-02-13 11:01:07 +01:00
orklah
954884eb48
consistency between TernaryAnalyzer and IfElseAnalyzer
2022-02-13 10:52:22 +01:00
orklah
a915ef5853
also remove a from_calculation flag which was scheduled for removal in Psalm 5
2022-02-12 10:19:39 +01:00
Bruce Weirdan
11e60fa261
Merge branch '4.x' into upstream-master
2022-02-11 03:51:48 +02:00
Matthew Brown
6d057669fc
Fix #6683 by improving simplification of CNF ( #7631 )
2022-02-10 19:37:42 -05:00
Matthew Brown
b49b5f1c20
Make error message for truthy/falsy more accurate
2022-02-10 18:46:22 -05:00
Matthew Brown
c885dbcbe0
Prevent duplicate type comparison errors
2022-02-10 01:04:14 -05:00
orklah
9984397766
Merge pull request #7622 from orklah/assertions
...
consistency in AssertionFinder
2022-02-09 22:53:28 +01:00
Matthew Brown
2eca28c912
Remove more unused code from LoopAnalyzer
2022-02-09 16:37:15 -05:00
orklah
1c74774c40
consistency
2022-02-09 21:48:33 +01:00
orklah
0f1efa9079
documentation
2022-02-09 21:15:22 +01:00
Matthew Brown
5575fa1e32
Remove unnecessary method
2022-02-09 12:18:15 -05:00
Matthew Brown
9d8b6d641b
Remove more unused code
2022-02-08 18:20:14 -05:00
Matthew Brown
48b702b76a
Remove some unnecessary code
2022-02-08 17:12:18 -05:00
Matthew Brown
e130dd9b1c
Fix too-long line
2022-02-08 16:28:21 -05:00
Matthew Brown
e35e6fe992
Improve naming of variables
2022-02-08 16:25:33 -05:00
Matthew Brown
13824d5a33
Fix awkward workaround for loop assignment map
2022-02-08 10:59:29 -05:00
Tomasz Kusy
124aa22fe9
Resolve __DIR__ / __FILE__ when const/variable is used for include CS fix fix fix :)
2022-02-04 20:27:45 +01:00
Tomasz Kusy
8da45aa7d8
Resolve __DIR__ / __FILE__ when const/variable is used for include CS fix fix
2022-02-04 20:26:06 +01:00
Tomasz Kusy
b73f2c96d8
Resolve __DIR__ / __FILE__ when const/variable is used for include CS fix
2022-02-04 19:43:55 +01:00
Tomasz Kusy
bcbfbed072
Resolve __DIR__ / __FILE__ when const/variable is used for include
2022-02-04 19:39:39 +01:00
Matthew Brown
3a298d028e
Rename getArrayVarId to getExtendedVarId
2022-02-04 12:49:12 -05:00
AndrolGenhald
5b469ca577
Fix crash when assigning reference to unknown array offset.
2022-02-04 08:32:35 -06:00
Matthew Brown
8098755ce5
Remove comma
2022-02-02 11:29:31 -05:00
Matthew Brown
b382d7db3c
Remove some unnecessary code around taint analysis
2022-02-02 11:25:03 -05:00
Matthew Brown
2b81990259
Simplify var naming
2022-02-02 11:25:02 -05:00
Vincent
3c3e692e7e
AtomicStaticCallAnalyzer: clear tmp var from context ( fix #7556 )
2022-02-02 13:51:54 +01:00
orklah
1c2ffc81c2
tweaks
2022-02-01 22:49:20 +01:00
orklah
68e67aeb10
Merge pull request #7546 from orklah/impure-callable
...
Handle first class callable on unknown functions
2022-01-31 22:02:35 +01:00
orklah
a598efb4ab
Handle first class callable on unknown functions
2022-01-31 21:36:01 +01:00
adrew
e284b91b82
Remove redundant flag from SimpleTypeInferer
2022-01-31 23:03:34 +03:00
adrew
121a801616
Fix object constant inference
2022-01-31 23:03:34 +03:00
orklah
48e09ab308
fix
2022-01-31 20:55:53 +01:00
orklah
fc281672ea
fix wrong detection of purity
2022-01-31 20:52:25 +01:00
Matthew Brown
fcfd4d30f3
Simplify passing in template result for calls
2022-01-31 09:36:40 -05:00
Bruce Weirdan
a2977a5ca9
Merge branch '4.x' into upstream-master
2022-01-31 00:16:27 +02:00
orklah
0592c03cda
fix issues resulting from previous commit
2022-01-30 16:05:38 +01:00
orklah
5a3735b90a
Change code so it handles what it was designed for
2022-01-30 16:05:22 +01:00
Vincent Langlet
854a3412fe
Use function
2022-01-30 15:32:55 +01:00
Vincent Langlet
cd3213201d
Fix
2022-01-30 15:30:40 +01:00
Matthew Brown
faaf7690f6
Remove mic-drop hack from if analysis ( #7484 )
...
* Remove mic-drop hack from if analysis
* Remove more special handling
* Remove some unnecessary ElseAnalyzer code
* Add back necessary code
* Fix return type of method never returning null
* Add a comment
* Simplify && handling
* Add comments to make stuff clearer
* Move if-specfic logic to more appropriate setting
2022-01-28 18:30:47 -05:00
orklah
048025b1d6
Merge pull request #7511 from orklah/literal-inequality
...
improve literal inequality with ranges and rework GreaterThan/LessThan assertions
2022-01-28 22:27:09 +01:00
orklah
3b73654db7
handle literal inequality with ints
2022-01-28 21:59:30 +01:00
adrew
3c22ecfa98
Remove args pre-analysis before run params provider hook
2022-01-28 15:18:30 +03:00
adrew
89c6a70dda
Simplify dynamic storage handling in FunctionCallAnalyzer
2022-01-28 15:18:30 +03:00
adrew
a4e56ae288
Fix method name
2022-01-28 15:18:30 +03:00
adrew
ce1cec5d3a
Using FuncCall instead of list<Arg> in FunctionDynamicStorageProvider for more flexibility
2022-01-28 15:18:30 +03:00
adrew
438be03414
Ability to provide dynamically created function storage via plugin hook
2022-01-28 15:18:29 +03:00
AndrolGenhald
282518ce5f
Fix failing case in ClassConstAnalyzer and add test.
2022-01-27 21:50:36 -06:00
AndrolGenhald
35353c6931
Re-add failing assert, enable assertions on CI.
2022-01-27 21:29:43 -06:00
Matthew Brown
1a6f968e15
Remove dodgy assertion cc @AndrolGenhald
...
This assertion broke tests when assertions were turned on
2022-01-27 20:58:35 -05:00
orklah
9168cef2d4
Merge remote-tracking branch 'upstream/4.x' into upstream-master6
2022-01-26 21:06:25 +01:00
AndrolGenhald
e268a05307
Minor fixes after rebasing.
2022-01-26 12:57:19 -06:00
AndrolGenhald
57b99be519
Improve reference support for assertions, array offsets, and properties.
2022-01-26 12:55:47 -06:00
AndrolGenhald
bf606202f8
Remove impossible TODO.
2022-01-26 12:55:47 -06:00
AndrolGenhald
f9450656e1
Add support for references and improve UnusedVariable checks ( fixes #7254 ).
2022-01-26 12:55:47 -06:00
AndrolGenhald
0b81f46bb1
Fixes after rebasing.
2022-01-25 15:31:09 -06:00
AndrolGenhald
0edf260d8b
Improve class constant static analysis.
...
Add class const covariance support (fixes #5589 ).
Add check for overriding const from interface in PHP < 8.1 (fixes #7108 ).
Add check for ambiguous const inheritance.
2022-01-25 15:20:17 -06:00
orklah
7c8441baec
Merge pull request #7123 from AndrolGenhald/feature/942-type-annotate-class-constants
...
Support type annotations for class consts (fixes #942 ).
2022-01-25 20:54:40 +01:00
Matthew Brown
c974f23852
Simplify context references
2022-01-24 16:35:42 -05:00
Matthew Brown
18f5446924
Remove unnecessary hack embedding IfScope in Context object
2022-01-24 14:00:20 -05:00
Matthew Brown
c7d938bbbe
Remove unnecessary code in Context::removeDescendants
2022-01-24 10:34:48 -05:00
orklah
f1c4b62f5c
Merge pull request #7414 from b2pweb/call-docblock-method-using-parent
...
Add support of docblock method using parent keyword
2022-01-24 13:02:57 +01:00
orklah
0619b404e5
Merge pull request #7390 from VincentLanglet/exceptionCode
...
Add Exception->getCode() return type provider
2022-01-24 12:56:57 +01:00
Vincent Langlet
9905baeceb
Add flagfrom_calculation
2022-01-24 09:31:10 +01:00
Vincent
280de4bc98
Fix undefined parent method call (ref #7414 )
2022-01-24 09:17:29 +01:00
Matthew Brown
ab2b77d9f5
Fix unnecessary array merge
...
This operation is already performed on line 420
2022-01-23 23:17:51 -05:00
orklah
63b802bff4
remove TPositiveInt
2022-01-23 23:49:23 +01:00
orklah
7c4f08067b
Merge remote-tracking branch 'upstream/4.x' into upstream-master5
2022-01-23 23:44:04 +01:00
orklah
c90cffd382
Merge pull request #7472 from orklah/intrange
...
remove TPositiveInt usage for TIntRange
2022-01-23 22:04:33 +01:00
orklah
a7b72b865f
remove TPositiveInt usage for TIntRange
2022-01-23 22:04:18 +01:00
Matthew Brown
865a9f81bc
Remove nullability from properties that don’t need them
2022-01-23 14:18:53 -05:00
orklah
82d84b0b3a
fix internal properties on interfaces
2022-01-23 13:08:35 +01:00
AndrolGenhald
0fb0632e0d
Infer type from known ternary condition.
2022-01-22 17:06:54 -06:00
AndrolGenhald
558208e44e
Add type checking for class const assignments, fix several other const issues.
2022-01-22 17:06:54 -06:00
AndrolGenhald
c877ce031e
Use inferred type instead of annotated type where possible.
2022-01-22 17:06:54 -06:00
AndrolGenhald
c18a155f77
Support type annotations for class consts ( fixes #942 ).
2022-01-22 17:06:53 -06:00
orklah
841d4f4429
improve support for enum_exists
2022-01-22 18:27:24 +01:00
orklah
af1888b631
Merge remote-tracking branch 'upstream/4.x' into upstream-master4
2022-01-22 17:48:42 +01:00
orklah
73af019110
fix a weird case
2022-01-22 17:45:40 +01:00
orklah
997d5d5f5f
handle two more cases of firstClassCallable
2022-01-22 17:37:35 +01:00