mirror of
https://github.com/danog/psalm.git
synced 2024-12-12 09:19:40 +01:00
method_id can be string (why, when?)
This commit is contained in:
parent
1aec75292a
commit
ee9a7c00fe
@ -5,6 +5,7 @@ use PhpParser;
|
|||||||
use Psalm\Internal\Analyzer\Statements\ExpressionAnalyzer;
|
use Psalm\Internal\Analyzer\Statements\ExpressionAnalyzer;
|
||||||
use Psalm\Internal\Analyzer\Statements\Expression\ExpressionIdentifier;
|
use Psalm\Internal\Analyzer\Statements\Expression\ExpressionIdentifier;
|
||||||
use Psalm\Internal\Analyzer\StatementsAnalyzer;
|
use Psalm\Internal\Analyzer\StatementsAnalyzer;
|
||||||
|
use Psalm\Internal\MethodIdentifier;
|
||||||
use Psalm\CodeLocation;
|
use Psalm\CodeLocation;
|
||||||
use Psalm\Context;
|
use Psalm\Context;
|
||||||
use Psalm\Issue\InvalidMethodCall;
|
use Psalm\Issue\InvalidMethodCall;
|
||||||
@ -406,15 +407,18 @@ class MethodCallAnalyzer extends \Psalm\Internal\Analyzer\Statements\Expression\
|
|||||||
|
|
||||||
if ($lhs_var_id) {
|
if ($lhs_var_id) {
|
||||||
// TODO: Always defined? Always correct?
|
// TODO: Always defined? Always correct?
|
||||||
/** @var \Psalm\Internal\MethodIdentifier */
|
|
||||||
$method_id = $result->existent_method_ids[0];
|
$method_id = $result->existent_method_ids[0];
|
||||||
// TODO: When should a method have a storage?
|
if ($method_id instanceof MethodIdentifier) {
|
||||||
if ($codebase->methods->hasStorage($method_id)) {
|
// TODO: When should a method have a storage?
|
||||||
$storage = $codebase->methods->getStorage($method_id);
|
if ($codebase->methods->hasStorage($method_id)) {
|
||||||
if ($storage->self_out_type) {
|
$storage = $codebase->methods->getStorage($method_id);
|
||||||
$self_out_type = $storage->self_out_type;
|
if ($storage->self_out_type) {
|
||||||
$context->vars_in_scope[$lhs_var_id] = $self_out_type;
|
$self_out_type = $storage->self_out_type;
|
||||||
|
$context->vars_in_scope[$lhs_var_id] = $self_out_type;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// TODO: When is method_id a string?
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user