Report malformed Object::Pad BUILD declarations clearly
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- Medio día
- Aptitud para principiantes
- 45/100
Línea de trabajo
Start with the class-block parser in the Perl front end, where BUILD is recognized and where a missing block body falls through into expression parsing. Reproduce with class BadBuild { BUILD method value {} } under use Object::Pad; and confirm the current unblessed-reference error. Done when that input yields a targeted syntax diagnostic, out-of-class BUILD gets coverage, and valid BUILD blocks still pass the existing Object::Pad tests.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Context
PR #1804 added support for valid Object::Pad BUILD { ... } blocks, including execution after field initialization, and passed the CAD::OpenSCAD 0.14 acceptance tests on both JVM and interpreter backends. The original parser failure is fixed.
Remaining diagnostic gap
Malformed or misplaced BUILD syntax should receive a focused compile-time diagnostic. Today, an incomplete class block can fall through into ordinary expression parsing and fail later with a confusing runtime error.
For example, against the merged implementation:
use Object::Pad;
class BadBuild { BUILD method value {} }
currently reports Can't call method "value" on unblessed reference instead of identifying the malformed BUILD declaration.
Follow-up
- Detect
BUILDin a class block when it is not followed by a block body and report a targeted syntax diagnostic. - Add project-owned coverage for malformed and out-of-class
BUILDdeclarations. - Keep valid Object::Pad
BUILDblocks and their constructor behavior unchanged.
Related: #1450, PR #1804.
- Lenguaje dominante
- Perl
- Estrellas
- 64
- Forks
- 7
- Merge medio
- 5 h 25 min
- PR fusionados (30 d)
- 213
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Leer la 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.
Más de fglock/PerlOnJava
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
fglock/PerlOnJava#1651 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
fglock/PerlOnJava#1579 ·
Los mantenedores suelen responder en 1 día
-
area:cpan-port area:unicode bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
fglock/PerlOnJava#1341 ·
Los mantenedores suelen responder en 1 día
-
area:cpan-port area:runtime bug
Dificultad 4/5 3-5 días Aptitud para principiantes 28/100
fglock/PerlOnJava#1802 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
area:backend area:cpan-port area:runtime bug
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
fglock/PerlOnJava#1801 ·
Los mantenedores suelen responder en 1 día
Todos los issues de fglock/PerlOnJava
Issues similares
-
Add .gitattributes so share/skel keeps LF on a Windows git checkoutPosiblemente ocupada @sadhana-s-codez la tomó hace 1 día. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
PerlDancer/Dancer2#1854 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
major/MySQLTuner-perl#1007 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 69/100
bioconda/bioconda-recipes#70187 ·
Los mantenedores suelen responder en 2 días