Parent call inside a try-catch block(which is always executed) isn't recognised.
まだ誰も着手していません。
評価
調査の方向性
Start with PHPStan\Rules\PHPUnit\ShouldCallParentMethodsRule::hasParentClassCall and the shown tearDown() example, focusing on how the try-catch block is traversed. Done means the parent::tearDown() call inside the try-catch is recognised and the missing-call error is no longer reported.
索引モデルが issue の本文から書いたものです。
説明
So, I am overriding tearDown() and as the rule suggests i need to call the parent::teardown() inside it , the only problem here is that i want to call it from a try-catch block which phpstan-phpunit doesn't recognise as a valid call to the parent method.
/**
{@inheritdoc}
*/
protected function tearDown(): void {
try {
parent::tearDown();
}
catch (\Exception $exception) {
if (!(get_class($exception) === get_class($this->expectedTearDownException) && $exception->getMessage() ===
$this->expectedTearDownException->getMessage())) {
throw $exception;
}
}
}
phpstan doesn't have this bug i checked in independently https://phpstan.org/r/1a212fa2-3cba-4c82-80db-7c75a8346f50
The main issue seems to be in
$hasParentCall = $this->hasParentClassCall($node->getOriginalNode()->getStmts(), strtolower($methodName));
if (!$hasParentCall) {
return [
RuleErrorBuilder::message(
sprintf('Missing call to parent::%s() method.', $methodName)
)->build(),
];
}
Mainly \PHPStan\Rules\PHPUnit\ShouldCallParentMethodsRule::hasParentClassCall
I think this lacks the logic to detect parent class calls inside a try-catch block.
- 主要言語
- PHP
- スター
- 544
- フォーク
- 58
- 平均マージ
- 2日 1時間
- マージ済み PR(30日)
- 5
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
phpstan/phpstan-phpunit のほかの issue
-
bug
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
phpstan/phpstan-phpunit#332 · コメント 2 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
phpstan/phpstan-phpunit#321 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
phpstan/phpstan-phpunit#309 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
phpstan/phpstan-phpunit#299 · コメント 2 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 52/100
phpstan/phpstan-phpunit#292 · コメント 3 件 ·
phpstan/phpstan-phpunit の issue をすべて見る
似ている issue
-
jira-created
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
難易度 1/5 1時間未満 初心者へのやさしさ 70/100
nunomaduro/phpinsights#745 ·
-
status/awaiting_triage
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
WordPress/plugin-check#1486 ·
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
az-digital/az_quickstart#6019 ·