1
0
mirror of https://github.com/danog/psalm.git synced 2024-11-26 20:34:47 +01:00

Fix issues with @psalm-ignore-nullable-return types

This commit is contained in:
muglug 2017-05-22 14:50:03 -04:00
parent 65d86d35ad
commit 77a44051c5
3 changed files with 12 additions and 2 deletions

View File

@ -161,6 +161,7 @@ class FunctionChecker extends FunctionLikeChecker
*/
public static function replaceTemplateTypes(Type\Union $return_type, array $template_types)
{
$ignore_nullable_issues = $return_type->ignore_nullable_issues;
$type_tokens = Type::tokenize((string)$return_type);
foreach ($type_tokens as &$type_token) {
@ -169,7 +170,11 @@ class FunctionChecker extends FunctionLikeChecker
}
}
return Type::parseString(implode('', $type_tokens));
$result_type = Type::parseString(implode('', $type_tokens));
$result_type->ignore_nullable_issues = $ignore_nullable_issues;
return $result_type;
}
/**

View File

@ -737,7 +737,8 @@ class AssignmentChecker
if (!TypeChecker::isContainedBy(
$assignment_value_type,
$class_property_type,
$file_checker
$file_checker,
$assignment_value_type->ignore_nullable_issues
)) {
if (IssueBuffer::accepts(
new InvalidPropertyAssignment(

View File

@ -280,6 +280,10 @@ class Union
return;
}
if ($new_type && $new_type->ignore_nullable_issues) {
$this->ignore_nullable_issues = true;
}
foreach ($old_type->types as $old_type_part) {
$this->removeType($old_type_part->getKey());
}