Macros inferring in new cljs (CLJS-1507)
- Lingua principale
- Clojure
- Stelle
- 776
- Fork
- 29
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
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.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Inizia da src/implant/dirac/implant/analyzer.cljs, in corrispondenza della chiamata a cljs.analyzer/analyze, e traccia il modo in cui le forme di namespace identificano le macro. Confronta le metadati delle macro inferiti con l’approccio basato sulla presenza a runtime descritto nell’issue, quindi verifica che i suggerimenti per il completamento del codice non riportino più tipi errati. L’issue non indica un file di test, quindi individua i test rilevanti dell’analyzer o della completion prima di apportare la modifica.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- clojure
- Ambito
- devtools
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 25/100