Remove comments from `find_assignment_target` result
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 77.2k
- Forks
- 35.9k
- Métriques de merge des PR
- Métriques de PR en attente
Description
Bug report
Bug description:
Tools/cases_generator/tier1_generator.py fails if you place comment before PyStackRef_FromPyObjectNew assignment. Example reproducer (bytecodes.c:291-293):
pure inst(LOAD_CONST, (-- value)) {
// comment
value = PyStackRef_FromPyObjectNew(GETITEM(FRAME_CO_CONSTS, oparg));
}
/python.exe Tools/cases_generator/tier1_generator.py
Traceback (most recent call last):
File "/Users/yyanchii/Desktop/cpython/Tools/cases_generator/tier1_generator.py", line 221, in <module>
data = analyze_files(args.input)
File "/Users/yyanchii/Desktop/cpython/Tools/cases_generator/analyzer.py", line 1184, in analyze_files
return analyze_forest(parser.parse_files(filenames))
File "/Users/yyanchii/Desktop/cpython/Tools/cases_generator/analyzer.py", line 1133, in analyze_forest
desugar_inst(node, instructions, uops)
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/yyanchii/Desktop/cpython/Tools/cases_generator/analyzer.py", line 947, in desugar_inst
uop = make_uop("_" + inst.name, inst, op_inputs, uops)
File "/Users/yyanchii/Desktop/cpython/Tools/cases_generator/analyzer.py", line 854, in make_uop
deferred_refs=analyze_deferred_refs(op),
~~~~~~~~~~~~~~~~~~~~~^^^^
File "/Users/yyanchii/Desktop/cpython/Tools/cases_generator/analyzer.py", line 458, in analyze_deferred_refs
raise analysis_error(
"PyStackRef_FromPyObjectNew() must be assigned to an output", tkn
)
File "/Users/yyanchii/Desktop/cpython/Python/bytecodes.c", line 293
^
SyntaxError: PyStackRef_FromPyObjectNew() must be assigned to an output
Problem is in:
https://github.com/python/cpython/blob/22a442181d5f1ac496dac08e24fd852de404882f/Tools/cases_generator/analyzer.py#L457-L460
as lhs may contain leading comments which are ignored during extraction.
CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux, macOS, Windows
Linked PRs
- gh-128743
Guide de contribution
Ouvrir 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.
Piste de recherche
Commencez dans Tools/cases_generator/analyzer.py autour de analyze_deferred_refs aux lignes 457-460, où l’issue identifie les commentaires en tête dans lhs comme étant la cause. Reproduisez le problème avec Tools/cases_generator/tier1_generator.py et l’exemple bytecodes.c ; c’est terminé lorsqu’un commentaire avant l’affectation ne déclenche plus l’erreur PyStackRef_FromPyObjectNew().
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- tooling
- Type d'issue
- Bug
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Activité
- À l'abandon
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 25/100