(Symbol sym)
| 385 | } |
| 386 | |
| 387 | static 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 | |
| 417 | static class DefExpr implements Expr{ |
| 418 | public final Var var; |
no test coverage detected