MCPcopy Index your code
hub / github.com/clojure/clojure / isMacro

Method isMacro

src/jvm/clojure/lang/Compiler.java:7484–7499  ·  view source on GitHub ↗
(Object op)

Source from the content-addressed store, hash-verified

7482}
7483
7484static public Var isMacro(Object op) {
7485 //no local macros for now
7486 if(op instanceof Symbol && referenceLocal((Symbol) op) != null)
7487 return null;
7488 if(op instanceof Symbol || op instanceof Var)
7489 {
7490 Var v = (op instanceof Var) ? (Var) op : lookupVar((Symbol) op, false, false);
7491 if(v != null && v.isMacro())
7492 {
7493 if(v.ns != currentNS() && !v.isPublic())
7494 throw new IllegalStateException("var: " + v + " is not public");
7495 return v;
7496 }
7497 }
7498 return null;
7499}
7500
7501static public IFn isInline(Object op, int arity) {
7502 //no local inlines for now

Callers 2

macroexpand1Method · 0.95
analyzeSymbolMethod · 0.95

Calls 5

referenceLocalMethod · 0.95
lookupVarMethod · 0.95
isMacroMethod · 0.95
currentNSMethod · 0.95
isPublicMethod · 0.95

Tested by

no test coverage detected