Untagged variant puts one typed array in another typed array's case
維護者通常 1 天內回覆
還沒有人認領這個 Issue。
評估
- 難度
- 4/5
- 預估耗時
- 3-5 天
- 新手友好度
- 48/100
- Issue 類型
- 缺陷
- 描述清晰度
- 基本清楚
- 活躍度
- 活躍
- 技術堆疊
- javascript
- 領域
- compilers
研究方向
Start with rule 5 in compiler/ml/UntaggedVariants.md and review the linked context in #8952 and #8950, which changes how the types are recognized. Reproduce the example with the two typed arrays and trace how their type names are used for run-time case checks. Done means the invalid overlap is rejected or the mismatched value becomes a type error.
由索引模型根據 Issue 內容生成。
描述
An untagged variant with cases for two typed arrays accepts a value of one typed array in the case of the other, and the value then matches the other case.
@unboxed type ta = I8(Int8Array.t) | U8(Uint8Array.t)
let f = v => switch v { | I8(_) => "i8" | U8(_) => "u8" }
Console.log(f(I8(Uint8Array.fromArray([1]))))
Output: u8.
The typed-array types are abbreviations of one type, so I8(Uint8Array…) type-checks. The cases are classified by the type name as written, so the run-time check is instanceof Uint8Array.
Expected: either the cases are distinct types, so that I8(Uint8Array…) is a type error, or the variant is rejected because two cases share one type.
The rule is compiler/ml/UntaggedVariants.md rule 5, in #8952. #8950 changes how these types are recognized.
- 主要語言
- OCaml
- 星號
- 7.5k
- 分支
- 483
- 平均合併
- 1 天 1 小時
- 30 天內合併 PR
- 169
環境準備
在瀏覽器裡用你自己的 GitHub 帳號啟動這個專案的開發容器。
- 沒有 Dockerfile 或 Docker Compose 檔案
- 有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
rescript-lang/rescript 的其他 Issue
-
難度 2/5 1-3 小時 新手友好度 77/100
rescript-lang/rescript#8953 ·
維護者通常 1 天內回覆
-
難度 4/5 1-2 天 新手友好度 52/100
rescript-lang/rescript#8956 ·
維護者通常 1 天內回覆
-
難度 4/5 1-2 天 新手友好度 55/100
rescript-lang/rescript#8954 ·
維護者通常 1 天內回覆
-
難度 5/5 一週以上 新手友好度 35/100
rescript-lang/rescript#8947 ·
維護者通常 1 天內回覆
-
Untagged variant with Blob and File cases never matches File when Blob is declared first可能已有人在做 @cknitt 於 1 天前認領。 未關閉
難度 4/5 3-5 天 新手友好度 48/100
rescript-lang/rescript#8938 ·
維護者通常 1 天內回覆
查看 rescript-lang/rescript 的全部 Issue
相似的 Issue
-
bug P2
難度 2/5 1-3 小時 新手友好度 74/100
維護者通常 1 天內回覆
-
REPL and --show-tokens abort with "Token conversion not implemented yet" on .xor., byte and in out未關閉bug low priority tokenizer
難度 2/5 1-3 小時 新手友好度 78/100
維護者通常 1 天內回覆
-
難度 1/5 1 小時以內 新手友好度 76/100
WebAssembly/spec#2300 ·
維護者通常 1 天內回覆
-
crash generated by fuzzer mlir
難度 2/5 1-3 小時 新手友好度 72/100
llvm/llvm-project#234636 · 1 則留言 ·
維護者通常 1 天內回覆
-
bug PyCDE
難度 2/5 1-3 小時 新手友好度 74/100
維護者通常 1 天內回覆