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

Method resolveSymbol

src/jvm/clojure/lang/Compiler.java:387–415  ·  view source on GitHub ↗
(Symbol sym)

Source from the content-addressed store, hash-verified

385}
386
387static Symbol resolveSymbol(Symbol sym){
388 //already qualified or classname?
389 if(sym.name.indexOf('.') > 0)
390 return sym;
391 if(sym.ns != null)
392 {
393 Namespace ns = namespaceFor(sym);
394 if(ns == null || (ns.name.name == null ? sym.ns == null : ns.name.name.equals(sym.ns)))
395 {
396 Class ac = HostExpr.maybeArrayClass(sym);
397 if(ac != null)
398 return Util.arrayTypeToSymbol(ac);
399 return sym;
400 }
401 return Symbol.intern(ns.name.name, sym.name);
402 }
403 Object o = currentNS().getMapping(sym);
404 if(o == null)
405 return Symbol.intern(currentNS().name.name, sym.name);
406 else if(o instanceof Class)
407 return Symbol.intern(null, ((Class) o).getName());
408 else if(o instanceof Var)
409 {
410 Var v = (Var) o;
411 return Symbol.intern(v.ns.name.name, v.sym.name);
412 }
413 return null;
414
415}
416
417static class DefExpr implements Expr{
418 public final Var var;

Callers 1

syntaxQuoteMethod · 0.95

Calls 9

namespaceForMethod · 0.95
maybeArrayClassMethod · 0.95
arrayTypeToSymbolMethod · 0.95
internMethod · 0.95
currentNSMethod · 0.95
getMappingMethod · 0.80
getNameMethod · 0.65
indexOfMethod · 0.45
equalsMethod · 0.45

Tested by

no test coverage detected