Wrong line & file on error trace
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- C
- Estrellas
- 40.4k
- Forks
- 8.2k
- Merge medio
- 2 d 15 h
- PR fusionados (30 d)
- 103
Descripción
Description
definitions.php
<?php
class ThrowableParam {
public function __construct() {
// this will be line #7 for definitions.php:
throw new Exception(sprintf('I expect to indicate file %s on line %s but it throws', basename(__FILE__), __LINE__));
}
}
trait TraitInASeparateFile {
// but this will be line #16 for definitions.php:
public function execute(ThrowableParam $param=new ThrowableParam): void {}
}
?>
main.php
<?php
include './definitions.php';
class Foo {
use TraitInASeparateFile;
}
$bar=new Foo;
$bar->execute(); // line #11 for main.php
// So, there is no line #16 for main.php
?>
RESULT :
Fatal error: Uncaught Exception: I expect to indicate file definitions.php on line 7 but it throws in ./main.php:16
Stack trace:
#0 ./definitions.php(7): constant expression
#1 ./definitions.php(16): ThrowableParam->__construct()
#2 ./main/php(11): Foo->execute()
#3 {main}
thrown in /var/www/html/nbcloud/_tests/bugPHP.php on line 16
BUT EXPECT :
Fatal error: Uncaught Exception: I expect to indicate file definitions.php on line 7 but it throws in ./definitions.php:7
Stack trace:
#0 ./definitions.php(7): constant expression
#1 ./definitions.php(16): ThrowableParam->__construct()
#2 ./main/php(11): Foo->execute()
#3 {main}
thrown in /var/www/html/nbcloud/_tests/bugPHP.php on line 16
PHP Version
8.4.5
Operating System
Debian 11
Guía de contribución
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.
Línea de trabajo
Comienza reproduciendo el informe con definitions.php y main.php en PHP 8.4.5, comparando la ubicación en la que se produce el lanzamiento con el stack trace. Investiga el manejo en tiempo de ejecución del argumento predeterminado del constructor que contiene una expresión constante y verifica que la ubicación de lanzamiento indicada sea definitions.php:7 en lugar de main.php:16.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- php
- Área
- backend
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100