InlineParser: `@rbs @ivar` annotation is reported as unused unless it is the first thing in the class body
Les mainteneurs répondent en général sous 1 jour
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 82/100
Piste de recherche
Commencez dans lib/rbs/inline_parser.rb, au niveau de InlineParser#visit_class_or_module_body, et reproduisez l’exemple de classe présenté avec RBS::InlineParser.parse. Suivez la manière dont each_enclosed_block traite le body et les annotations au niveau de la classe. C’est terminé lorsque l’annotation après def bar ne produit plus UnusedInlineAnnotation et produit un InstanceVariableMember.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
rbs 4.2.0
class Foo
def bar; end
# @rbs @a: Integer
X = 1
end
RBS::InlineParser.parse reports UnusedInlineAnnotation for @rbs @a: Integer and no InstanceVariableMember is created. Moving the annotation above def bar makes it work.
Cause: InlineParser#visit_class_or_module_body calls comments.each_enclosed_block(child_node) on the body StatementsNode (whose line range spans from the first member to the last) and reports every block inside it as unused, before the class-level each_enclosed_block(node) that handles InstanceVariableAnnotation runs. Only blocks located before the first member survive.
https://github.com/ruby/rbs/blob/v4.2.0/lib/rbs/inline_parser.rb (visit_class_or_module_body)
- Langage dominant
- Ruby
- Étoiles
- 2.2k
- Forks
- 258
- Merge moyen
- 1 j 4 h
- PR mergées (30 j)
- 52
Préparer son environnement
- Aucun Dockerfile ni 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 ruby/rbs
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 57/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 3/5 1-2 jours Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
Les mainteneurs répondent en général sous 7 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
Les mainteneurs répondent en général sous 7 jours
-
NoMethodError in auth#createOuvertebugsnag
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
JoeMcB/improvcoaches#827 ·
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 72/100
TheOdinProject/curriculum#31465 ·
Les mainteneurs répondent en général sous 1 jour
-
area: docs eco: ruby good first issue help wanted lane: free-agent roadmap size: XS type: docs
Difficulté 1/5 Moins d'une heure Accessibilité débutants 66/100
arminazimi/evergreen#465 ·
Les mainteneurs répondent en général sous 1 jour