1
0
mirror of https://github.com/danog/psalm.git synced 2024-11-27 04:45:20 +01:00

Make sure to record class references even when we don’t know whether the class exists

This commit is contained in:
Brown 2020-04-04 21:47:35 -04:00
parent 81534bbe18
commit 003212fa15

View File

@ -308,28 +308,6 @@ class ClassLikes
$fq_class_name_lc = strtolower($this->classlike_aliases[$fq_class_name_lc]); $fq_class_name_lc = strtolower($this->classlike_aliases[$fq_class_name_lc]);
} }
if (!isset($this->existing_classes_lc[$fq_class_name_lc])
|| !$this->existing_classes_lc[$fq_class_name_lc]
|| !$this->classlike_storage_provider->has($fq_class_name_lc)
) {
if ((
!isset($this->existing_classes_lc[$fq_class_name_lc])
|| $this->existing_classes_lc[$fq_class_name_lc] === true
)
&& !$this->classlike_storage_provider->has($fq_class_name_lc)
) {
if (!isset($this->existing_classes_lc[$fq_class_name_lc])) {
$this->existing_classes_lc[$fq_class_name_lc] = false;
return false;
}
return $this->existing_classes_lc[$fq_class_name_lc];
}
return false;
}
if ($code_location) { if ($code_location) {
if ($calling_method_id) { if ($calling_method_id) {
$this->file_reference_provider->addMethodReferenceToClass( $this->file_reference_provider->addMethodReferenceToClass(
@ -357,6 +335,28 @@ class ClassLikes
} }
} }
if (!isset($this->existing_classes_lc[$fq_class_name_lc])
|| !$this->existing_classes_lc[$fq_class_name_lc]
|| !$this->classlike_storage_provider->has($fq_class_name_lc)
) {
if ((
!isset($this->existing_classes_lc[$fq_class_name_lc])
|| $this->existing_classes_lc[$fq_class_name_lc] === true
)
&& !$this->classlike_storage_provider->has($fq_class_name_lc)
) {
if (!isset($this->existing_classes_lc[$fq_class_name_lc])) {
$this->existing_classes_lc[$fq_class_name_lc] = false;
return false;
}
return $this->existing_classes_lc[$fq_class_name_lc];
}
return false;
}
if ($this->collect_locations && $code_location) { if ($this->collect_locations && $code_location) {
$this->file_reference_provider->addCallingLocationForClass( $this->file_reference_provider->addCallingLocationForClass(
$code_location, $code_location,