RustPython / RustPython/Parser
Parser incompatibility with "def woohoo(a, *, b): pass"
Ouverte
Personne n'a encore pris cette issue.
- Langage dominant
- Rust
- Étoiles
- 117
- Forks
- 38
- Merge moyen
- 4 j 7 h
- PR mergées (30 j)
- 1
Description
>>> ast.dump(ast.parse("def woohoo(a, *, b): pass"))
"Module(body=[FunctionDef(name='woohoo', args=arguments(posonlyargs=[], args=[arg(arg='a')], kwonlyargs=[arg(arg='b')], kw_defaults=[None], defaults=[]), body=[Pass()], decorator_list=[])], type_ignores=[])"
>>> ast.dump(rustpython_parse("def woohoo(a, *, b): pass"))
"Module(body=[FunctionDef(name='woohoo', args=arguments(posonlyargs=[], args=[arg(arg='a')], kwonlyargs=[arg(arg='b')], kw_defaults=[], defaults=[]), body=[Pass()], decorator_list=[])], type_ignores=[])"
kw_defaults=[None] vs kw_defaults=[]
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
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
Reproduisez la divergence en comparant Python's ast.parse avec rustpython_parse pour "def woohoo(a, *, b): pass". Suivez le point d'entrée du parser derrière rustpython_parse et vérifiez que les arguments FunctionDef résultants incluent kw_defaults=[None] pour un argument nommé obligatoire, conformément à la sortie de l'AST de Python.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python, rust
- Domaine
- compilers
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100