|
15 | 15 | use PHPStan\Rules\NonIgnorableRuleError; |
16 | 16 | use PHPStan\Rules\Registry; |
17 | 17 | use PHPStan\Rules\TipRuleError; |
| 18 | +use Roave\BetterReflection\NodeCompiler\Exception\UnableToCompileNode; |
18 | 19 | use Roave\BetterReflection\Reflector\Exception\IdentifierNotFound; |
19 | 20 | use function array_fill_keys; |
20 | 21 | use function array_key_exists; |
@@ -93,6 +94,9 @@ public function analyseFile( |
93 | 94 | } catch (IdentifierNotFound $e) { |
94 | 95 | $fileErrors[] = new Error(sprintf('Reflection error: %s not found.', $e->getIdentifier()->getName()), $file, $node->getLine(), $e, null, null, 'Learn more at https://phpstan.org/user-guide/discovering-symbols'); |
95 | 96 | continue; |
| 97 | + } catch (UnableToCompileNode $e) { |
| 98 | + $fileErrors[] = new Error(sprintf('Reflection error: %s', $e->getMessage()), $file, $node->getLine(), $e, null, null, 'Learn more at https://phpstan.org/user-guide/discovering-symbols'); |
| 99 | + continue; |
96 | 100 | } |
97 | 101 |
|
98 | 102 | foreach ($ruleErrors as $ruleError) { |
@@ -174,6 +178,8 @@ public function analyseFile( |
174 | 178 | // pass |
175 | 179 | } catch (IdentifierNotFound $e) { |
176 | 180 | // pass |
| 181 | + } catch (UnableToCompileNode $e) { |
| 182 | + // pass |
177 | 183 | } |
178 | 184 | }; |
179 | 185 |
|
@@ -233,6 +239,8 @@ public function analyseFile( |
233 | 239 | $fileErrors[] = new Error($e->getMessage(), $file, null, $e, null, null, $e->getTip()); |
234 | 240 | } catch (IdentifierNotFound $e) { |
235 | 241 | $fileErrors[] = new Error(sprintf('Reflection error: %s not found.', $e->getIdentifier()->getName()), $file, null, $e, null, null, 'Learn more at https://phpstan.org/user-guide/discovering-symbols'); |
| 242 | + } catch (UnableToCompileNode $e) { |
| 243 | + $fileErrors[] = new Error(sprintf('Reflection error: %s', $e->getMessage()), $file, null, $e, null, null, 'Learn more at https://phpstan.org/user-guide/discovering-symbols'); |
236 | 244 | } |
237 | 245 | } elseif (is_dir($file)) { |
238 | 246 | $fileErrors[] = new Error(sprintf('File %s is a directory.', $file), $file, null, false); |
|
0 commit comments