Tensegritics / Tensegritics/ClojureDart
Reader conditional selects :clj branch if it comes before :cljd
Open
Nobody has claimed this yet.
bug
- Dominant language
- Clojure
- Stars
- 1.6k
- Forks
- 119
- PR merge metrics
- No merged PRs in 30d
Description
see https://clojurians.slack.com/archives/C03A6GE8D32/p1650332155679279
;; okay
(println #?(:cljd 1
:clj (Integer/parseInt "2")
:default nil))
;; KO
(println #?(:clj (Integer/parseInt "2")
:cljd 1
:default nil))
Something horrible happened! 😱
Error while compiling Integer/parseInt
Integer/parseInt
(Integer/parseInt "2")
(println (Integer/parseInt "2"))
(let* [] (println (Integer/parseInt "2")))
(do (println (Integer/parseInt "2")))
(fn* ([] (println (Integer/parseInt "2"))))
(defn main [] (println (Integer/parseInt "2")))
Unknown symbol: Integer/parseInt at line: 5, column: 20, file: quickstart/helloworld.cljc
Contributor guide
No contributing guide indexed for this repository
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
Reproduce the two reader-conditional examples from the issue in ClojureDart, comparing the branch order and resulting compilation error. Trace the reader-conditional handling to determine why :clj is selected or compiled before :cljd; done means both orderings select :cljd and do not compile the inactive :clj branch.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- clojure, dart
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100