mirror of
https://github.com/danog/psalm.git
synced 2025-01-22 05:41:20 +01:00
Exit early for invalid class or interface
This commit is contained in:
parent
588ae82ffb
commit
b0f6a020da
@ -1348,8 +1348,38 @@ class StatementsChecker
|
|||||||
$class_visibility = \ReflectionProperty::IS_PUBLIC;
|
$class_visibility = \ReflectionProperty::IS_PUBLIC;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!ClassChecker::classExists($lhs_type_part->value)) {
|
||||||
|
if (ClassChecker::interfaceExists($lhs_type_part->value)) {
|
||||||
|
if (IssueBuffer::accepts(
|
||||||
|
new NoInterfaceProperties(
|
||||||
|
'Interfaces cannot have properties',
|
||||||
|
$this->_file_name,
|
||||||
|
$stmt->getLine()
|
||||||
|
),
|
||||||
|
$this->_suppressed_issues
|
||||||
|
)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (IssueBuffer::accepts(
|
||||||
|
new UndefinedClass(
|
||||||
|
'Cannot set properties of undefined class ' . $lhs_type_part->value,
|
||||||
|
$this->_file_name,
|
||||||
|
$stmt->getLine()
|
||||||
|
),
|
||||||
|
$this->_suppressed_issues
|
||||||
|
)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$class_properties = ClassChecker::getInstancePropertiesForClass(
|
$class_properties = ClassChecker::getInstancePropertiesForClass(
|
||||||
(string) $lhs_type_part,
|
$lhs_type_part->value,
|
||||||
$class_visibility
|
$class_visibility
|
||||||
);
|
);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user