Parent call inside a try-catch block(which is always executed) isn't recognised.
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 45/100
Direção de pesquisa
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.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- PHP
- Estrelas
- 545
- Forks
- 58
- Merge médio
- 10h 48min
- PRs com merge (30d)
- 10
Preparar o ambiente
Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de phpstan/phpstan-phpunit
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 48/100
phpstan/phpstan-phpunit#338 · 1 reação ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 48/100
phpstan/phpstan-phpunit#321 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 48/100
phpstan/phpstan-phpunit#309 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 45/100
phpstan/phpstan-phpunit#299 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 52/100
phpstan/phpstan-phpunit#292 · 3 comentários ·
Mantenedores costumam responder em até 1 dia
Todas as issues de phpstan/phpstan-phpunit
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
invoiceninja/invoiceninja#13320 ·
Mantenedores costumam responder em até 1 dia
-
sync-en
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
Mantenedores costumam responder em até 1 dia
-
Перевод устарел
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
-
[Type] Bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
Mantenedores costumam responder em até 1 dia
-
bug repo:cms
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
craftcms/cms#19828 · 1 comentário ·
Mantenedores costumam responder em até 1 dia