diff options
author | Rich Hickey <richhickey@gmail.com> | 2008-06-26 13:26:22 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2008-06-26 13:26:22 +0000 |
commit | 773decb73fafedd96436b962bac21e7d51ad511e (patch) | |
tree | 1f73a9177b541bde0da165d82d371e74e4554ede /src | |
parent | 7f6eadb2000d047487e316077d3462dad8b87bd0 (diff) |
added *file*, type hint on *agent*
Diffstat (limited to 'src')
-rw-r--r-- | src/jvm/clojure/lang/Compiler.java | 31 | ||||
-rw-r--r-- | src/jvm/clojure/lang/RT.java | 1 |
2 files changed, 17 insertions, 15 deletions
diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java index 5319d9ff..74fa0b0e 100644 --- a/src/jvm/clojure/lang/Compiler.java +++ b/src/jvm/clojure/lang/Compiler.java @@ -173,7 +173,8 @@ static final public Var IN_CATCH_FINALLY = Var.create(null); static final public Var SOURCE = Var.create("NO_SOURCE_FILE"); //String -static final public Var SOURCE_PATH = Var.create(null); +static final public Var SOURCE_PATH = Var.intern(Namespace.findOrCreate(Symbol.create("clojure")), + Symbol.create("*file*"), null); //Integer static final public Var LINE = Var.create(0); @@ -749,8 +750,7 @@ static public abstract class HostExpr implements Expr, MaybePrimitiveExpr{ c = byte[].class; else if(sym.name.equals("booleans")) c = boolean[].class; - else - if(sym.name.indexOf('.') > 0 || sym.name.charAt(0) == '[') + else if(sym.name.indexOf('.') > 0 || sym.name.charAt(0) == '[') c = RT.classForName(sym.name); else { @@ -1892,9 +1892,9 @@ static boolean subsumes(Class[] c1, Class[] c2){ if(c1[i] != c2[i])// || c2[i].isPrimitive() && c1[i] == Object.class)) { if(!c1[i].isPrimitive() && c2[i].isPrimitive() - //|| Number.class.isAssignableFrom(c1[i]) && c2[i].isPrimitive() - || - c2[i].isAssignableFrom(c1[i])) + //|| Number.class.isAssignableFrom(c1[i]) && c2[i].isPrimitive() + || + c2[i].isAssignableFrom(c1[i])) better = true; else return false; @@ -2775,7 +2775,7 @@ static public class FnExpr implements Expr{ tv = tv.cons(OBJECT_TYPE); } Type[] ret = new Type[tv.count()]; - for(int i=0;i<tv.count();i++) + for(int i = 0; i < tv.count(); i++) ret[i] = (Type) tv.nth(i); return ret; } @@ -2889,7 +2889,8 @@ static public class FnExpr implements Expr{ { LocalBinding lb = (LocalBinding) s.first(); if(lb.getPrimitiveType() != null) - cv.visitField(ACC_PUBLIC + ACC_FINAL, lb.name, Type.getType(lb.getPrimitiveType()).getDescriptor(), null, null); + cv.visitField(ACC_PUBLIC + ACC_FINAL, lb.name, Type.getType(lb.getPrimitiveType()).getDescriptor(), + null, null); else cv.visitField(ACC_PUBLIC + ACC_FINAL, lb.name, OBJECT_TYPE.getDescriptor(), null, null); } @@ -2980,7 +2981,7 @@ static public class FnExpr implements Expr{ for(ISeq s = RT.keys(closes); s != null; s = s.rest()) { LocalBinding lb = (LocalBinding) s.first(); - if(lb.getPrimitiveType()!=null) + if(lb.getPrimitiveType() != null) fn.emitUnboxedLocal(gen, lb); else fn.emitLocal(gen, lb); @@ -3031,7 +3032,7 @@ static public class FnExpr implements Expr{ Class primc = lb.getPrimitiveType(); if(closes.containsKey(lb)) { - gen.loadThis(); + gen.loadThis(); gen.getField(fntype, lb.name, Type.getType(primc)); } else @@ -3730,12 +3731,12 @@ public static Object macroexpand1(Object x) throws Exception{ Symbol meth = Symbol.intern(sname.substring(1)); return RT.listStar(DOT, RT.second(form), meth, form.rest().rest()); } - else if (sym.ns != null) + else if(sym.ns != null) { Symbol target = Symbol.intern(sym.ns); if(Namespace.find(target) == null) { - Class c = HostExpr.maybeClass(target,false); + Class c = HostExpr.maybeClass(target, false); if(c != null) { Symbol meth = Symbol.intern(sym.name); @@ -3860,10 +3861,10 @@ private static Expr analyzeSymbol(Symbol sym) throws Exception{ Symbol nsSym = Symbol.create(sym.ns); if(Namespace.find(nsSym) == null) { - Class c = HostExpr.maybeClass(nsSym,false); + Class c = HostExpr.maybeClass(nsSym, false); if(c != null) { - return new StaticFieldExpr((Integer)LINE.get(),c,sym.name); + return new StaticFieldExpr((Integer) LINE.get(), c, sym.name); } } } @@ -3949,7 +3950,7 @@ static Var lookupVar(Symbol sym, boolean internNew) throws Exception{ Namespace ns = Namespace.find(nsSym); if(ns == null) return null; - //throw new Exception("No such namespace: " + sym.ns); + //throw new Exception("No such namespace: " + sym.ns); Symbol name = Symbol.create(sym.name); if(internNew && ns == currentNS()) var = currentNS().intern(name); diff --git a/src/jvm/clojure/lang/RT.java b/src/jvm/clojure/lang/RT.java index 42f09ada..4852b8ca 100644 --- a/src/jvm/clojure/lang/RT.java +++ b/src/jvm/clojure/lang/RT.java @@ -216,6 +216,7 @@ static Symbol namesym = Symbol.create("name"); OUT.setTag(Symbol.create("java.io.Writer")); CURRENT_NS.setTag(Symbol.create("clojure.lang.Namespace")); + AGENT.setTag(Symbol.create("clojure.lang.Agent")); MATH_CONTEXT.setTag(Symbol.create("java.math.MathContext")); Var v; v = Var.intern(CLOJURE_NS, IN_NAMESPACE, inNamespace); |