microsoft / microsoft/TypeScript

Generic syntax ambiguity is handled incorrectly

オープン
#60,874 コメント 1 件 リアクション 1 件 担当者 0 名 GitHub で見る

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

Bug Domain: Parser Help Wanted
主要言語
Go
スター
111k
フォーク
14.3k
平均マージ
1日 19時間
マージ済み PR(30日)
117

説明

🔎 Search Terms

generic syntax ambiguity

🕗 Version & Regression Information
  • I was unable to test this on prior versions because there is no online tooling for it
⏯ Playground Link

https://www.typescriptlang.org/play/?#code/MYewdgzgLgBAhjAvDAjAGhgIyTATB4HAZgwBMcAWDAUxwFYBuAKFEhABtqA6dkAcwAUCADxYMAwgD4YA8gDIY1AJQrmQA

💻 Code
const a = 1, b = 2, c = 3, d = 4, e = 5;
console.log(a < b, (c > (d & e)));
🙁 Actual behavior

This expression is not callable.

🙂 Expected behavior

true false

Additional information about the issue

While there might be some justification for why

const a = 1, b = 2, c = 3, d = 4, e = 5;
console.log(a < b, c > (d & e));

doesn't work as it did in JS, in the provided example there isn't even any disambiguity.

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

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

調査の方向性

リンクされている TypeScript Playground で報告された式を再現し、括弧なしのバージョンと比較してください。この式に対するジェネリック構文の曖昧さをコンパイラーがどのように処理するかを追跡してください。提供されたコードが受け入れられ、関連する曖昧な形式をリグレッションさせることなく true false を生成すれば完了です。

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

評価

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

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

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