binaryage / binaryage/dirac

Macros inferring in new cljs (CLJS-1507)

Open
#39 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Clojure
Stars
776
Forks
29
PR merge metrics
No merged PRs in 30d

Description

Currently we use [cljs.analyzer/analyze](https://github.com/binaryage/dirac/blob/f7e140336dd76c125aa91611e4e313ced123a1d1/src/implant/dirac/implant/analyzer.cljs#L9) to parse ns forms. We trust it to tell us which symbols/namespace references are macros. But new macros inference [CLJS-1507](http://dev.clojure.org/jira/browse/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.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.