Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

InlineParser: `@rbs @ivar` annotation is reported as unused unless it is the first thing in the class body

Offen Anfängerfreundlich
#3,175 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

@ksss arbeitet bereits daran.

Seit 29.9.2026.

  • #3183 von @ksss — offen

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
82/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
ruby
Bereich
tooling

Rechercherichtung

Beginne in lib/rbs/inline_parser.rb bei InlineParser#visit_class_or_module_body und reproduziere das gezeigte Klassenbeispiel mit RBS::InlineParser.parse. Verfolge, wie each_enclosed_block den Body und Annotationen auf Klassenebene verarbeitet. Die Aufgabe ist abgeschlossen, wenn die Annotation nach def bar kein UnusedInlineAnnotation mehr erzeugt und einen InstanceVariableMember erzeugt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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)

Vorherrschende Sprache
Ruby
Sterne
2.2k
Forks
258
Ø Merge
1 T. 4 Std.
Gemergte PRs (30 T.)
52

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus ruby/rbs

Alle Issues in ruby/rbs

Ähnliche Issues

Weitere Issues zu Ruby

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.