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

Don't crash on invalid templates

Fixes vimeo/psalm#9596
This commit is contained in:
Bruce Weirdan 2024-03-11 01:41:52 +01:00
parent c511185fbe
commit 4a2cf93d7a
2 changed files with 14 additions and 2 deletions

View File

@ -434,9 +434,11 @@ final class ClassLikeNodeScanner
try {
$type_string = CommentAnalyzer::splitDocLine($type_string)[0];
} catch (DocblockParseException $e) {
throw new DocblockParseException(
$type_string . ' is not a valid type: ' . $e->getMessage(),
$storage->docblock_issues[] = new InvalidDocblock(
$e->getMessage() . ' in docblock for ' . $fq_classlike_name,
$name_location ?? $class_location,
);
continue;
}
$type_string = CommentAnalyzer::sanitizeDocblockType($type_string);
try {

View File

@ -5025,6 +5025,16 @@ class ClassTemplateTest extends TestCase
}',
'error_message' => 'InvalidReturnStatement',
],
'noCrashOnBrokenTemplate' => [
'code' => <<<'PHP'
<?php
/**
* @template TValidationRule of callable>|string
*/
class C {}
PHP,
'error_message' => 'InvalidDocblock',
],
];
}
}