Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Temporal: for/if/loop/return nodes stamped with the next statement's line (what is i at N answers for a line that never assigns i)

クローズ
#1,382 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
55/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
c
領域
compilers

調査の方向性

Start in the parser and temporal tracing code, then run the existing temporal tests around line-based lookup and trace tape generation. Add coverage for for/if/loop/return nodes, indexed/field/destructuring stores, and the end-of-file stamp; use the Done when checklist and docs/TRACE.md to verify the resulting behavior.

索引モデルが issue の本文から書いたものです。

説明

area:observer kind:silent-wrong

Found by the builder on #1377. This predates it and exists on base too.

The parser stamps if/loop/for/return nodes with the line of the token that FOLLOWS them, not their own line. For a for loop variable this is silent-wrong: what is i at 4 returns 2 when line 4 never assigns i.

Related, from the same survey:

  • Every trace tape starts with a spurious L stamp for the line after the end of the file.
  • Stores other than a plain assignment (d[k] is v, d.k is v, destructuring) are stamped differently from plain assignment.
  • A call assignment is recorded under the callee's last line.

The filing rule for multi-line statements is #1381's decision. This issue is about nodes stamped with a line that is not theirs at all.

Done when

  • for/if/loop/return nodes carry their own keyword's line. A temporal test shows what is i at N returns null (or the prior value) for a line that does not assign i.
  • The spurious end-of-file L stamp is gone, or explained in docs/TRACE.md.
  • Indexed, field and destructuring stores are stamped by the same rule as plain assignment. Covered by a test.
主要言語
C
スター
3
フォーク
7
平均マージ
5時間 38分
マージ済み PR(30日)
188

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

InauguralSystems/EigenScript のほかの issue

InauguralSystems/EigenScript の issue をすべて見る

似ている issue

C の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。