Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Macros inferring in new cljs (CLJS-1507)

Open
#39 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
25/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
clojure
Domain
devtools

Research direction

Start with src/implant/dirac/implant/analyzer.cljs at the cljs.analyzer/analyze call and trace how namespace forms identify macros. Compare the inferred macro information with the runtime-presence approach described in the issue, then verify that code-completion hints no longer report incorrect types. The issue does not name a test file, so identify the relevant analyzer or completion tests before making the change.

Written by the indexing model from the issue text.

Description

enhancement

Currently we use cljs.analyzer/analyze to parse ns forms. We trust it to tell us which symbols/namespace references are macros. But new macros inference CLJS-1507 can make this unreliable when someone relies on inferring.

I think a way how to work around this is to treat everything as a function and check for runtime presence. If it is not present at runtime, we treat it as a macro (but this can have performance implications because runtime presence checks must go over wire).

Other idea is just to leave it as is and our code completion hints will report wrong types.

Dominant language
Clojure
Stars
775
Forks
29
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from binaryage/dirac

All issues in binaryage/dirac

Similar issues

More Clojure issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.