rescript-lang / rescript-lang/rescript
Primitive_object.equal treats empty array as Some(None)
Open
Nobody has claimed this yet.
- Dominant language
- OCaml
- Stars
- 7.5k
- Forks
- 485
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 55
Description
It appears that Primitive_object.equal mistakenly treats [] as Some(None). I can't think of a reason for this being intentional, so I think it's a bug.
This ReScript code logs true:
let check = v => v == Some(None)
Console.log(check(%raw(`[]`)))
But an empty array is not Some(None), so it should be logging false.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the ReScript example and linked playground, then trace the named Primitive_object.equal behavior. Confirm how [] is classified relative to Some(None), and verify that the completed change makes the example log false without altering the intended comparison behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, ocaml
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100