Report malformed Object::Pad BUILD declarations clearly
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- Une demi-journée
- Accessibilité débutants
- 45/100
Piste de recherche
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.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- Perl
- Étoiles
- 64
- Forks
- 7
- Merge moyen
- 5 h 31 min
- PR mergées (30 j)
- 214
Préparer son environnement
- Fournit un Dockerfile ou un fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de fglock/PerlOnJava
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
fglock/PerlOnJava#1579 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 3/5 1-2 jours Accessibilité débutants 48/100
fglock/PerlOnJava#1835 ·
Les mainteneurs répondent en général sous 1 jour
-
area:cpan-port bug
Difficulté 3/5 1-2 jours Accessibilité débutants 68/100
fglock/PerlOnJava#1820 ·
Les mainteneurs répondent en général sous 1 jour
-
area:cpan-port area:runtime bug
Difficulté 4/5 3-5 jours Accessibilité débutants 28/100
fglock/PerlOnJava#1802 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
area:backend area:cpan-port area:runtime bug
Difficulté 4/5 3-5 jours Accessibilité débutants 30/100
fglock/PerlOnJava#1801 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de fglock/PerlOnJava
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 80/100
jimsalterjrs/sanoid#1116 · 1 réaction ·
-
Add .gitattributes so share/skel keeps LF on a Windows git checkoutPeut-être pris @sadhana-s-codez l’a pris il y a 2 jours. Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 85/100
PerlDancer/Dancer2#1854 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
major/MySQLTuner-perl#1007 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100