Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Parent call inside a try-catch block(which is always executed) isn't recognised.

オープン
#187 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
45/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
停滞
技術スタック
php
領域
testing

調査の方向性

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

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

phpstan/phpstan-phpunit のほかの issue

phpstan/phpstan-phpunit の issue をすべて見る

似ている issue

PHP の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。