`assertTrue` seems to lose inferred type
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 68/100
Línea de trabajo
Start with the reproduction in tests/MockServerTrait.php, using the listed phpstan/phpstan and phpstan/phpstan-phpunit versions, and compare the dumped types before and after self::assertTrue. Trace how the PHPUnit assertTrue call is handled, then verify that the non-null MockWebServer type is preserved and the return-type error disappears.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
phpstan/phpstanv2.1.13phpstan/phpstan-phpunitv2.0.6
Given the following trait:
trait MockServerTrait
{
private static ?MockWebServer\MockWebServer $mockServer = null;
protected static function startMockServer(
string $host = '127.0.0.1',
int $port = 2083,
): MockWebServer\MockWebServer {
self::$mockServer?->stop();
self::$mockServer = new MockWebServer\MockWebServer($port, $host);
self::$mockServer->start();
\PHPStan\dumpType(self::$mockServer); // line 55
self::assertTrue(self::$mockServer->isRunning());
\PHPStan\dumpType(self::$mockServer); // line 57
return self::$mockServer; // line 59
}
}
When running PHPStan, I get the following errors:
------ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Line tests/MockServerTrait.php (in context of class EliasHaeussler\CpanelRequests\Tests\MockServerAwareTestCase)
------ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
55 Dumped type: donatj\MockWebServer\MockWebServer
✏️ tests/MockServerTrait.php:55
57 Dumped type: donatj\MockWebServer\MockWebServer|null
✏️ tests/MockServerTrait.php:57
59 Method EliasHaeussler\CpanelRequests\Tests\MockServerAwareTestCase::startMockServer() should return donatj\MockWebServer\MockWebServer but returns donatj\MockWebServer\MockWebServer|null.
🪪 return.type
✏️ tests/MockServerTrait.php:59
------ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
When I omit the last self::assertTrue, no errors are reported anymore.
- Lenguaje dominante
- PHP
- Estrellas
- 544
- Forks
- 58
- Merge medio
- 2 d 1 h
- PR fusionados (30 d)
- 5
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de phpstan/phpstan-phpunit
-
bug
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
phpstan/phpstan-phpunit#332 · 2 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
phpstan/phpstan-phpunit#321 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
phpstan/phpstan-phpunit#309 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
phpstan/phpstan-phpunit#299 · 2 comentarios ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 52/100
phpstan/phpstan-phpunit#292 · 3 comentarios ·
Todos los issues de phpstan/phpstan-phpunit
Issues similares
-
jira-created
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 70/100
nunomaduro/phpinsights#745 ·
-
status/awaiting_triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
WordPress/plugin-check#1486 ·
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
az-digital/az_quickstart#6019 ·