public Class getPrimitiveType(){ return maybePrimitiveType(init); } }
public LocalBinding(int num, Symbol sym, Symbol tag, Expr init, boolean isArg,PathNode clearPathRoot) { if(maybePrimitiveType(init) != null && tag != null) throw new UnsupportedOperationException("Can't type hint a local with a primitive initializer"); this.idx = num; this.sym = sym; this.tag = tag; this.init = init; this.isArg = isArg; this.clearPathRoot = clearPathRoot; name = munge(sym.name); }
try final Class primc = maybePrimitiveType(e); if(primc == parameterTypes[i])
Class primExprClass = maybePrimitiveType(expr); Type primExprType = primExprClass == null ? null : Type.getType(primExprClass);
Class primExprClass = maybePrimitiveType(expr); Type primExprType = primExprClass == null ? null : Type.getType(primExprClass);
final Class pc = maybePrimitiveType((Expr) args.nth(i)); if(primc == long.class)
try final Class pc = maybePrimitiveType(arg); if(pc == primc) ((MaybePrimitiveExpr) arg).emitUnboxed(C.EXPRESSION, objx, gen);
if(lname.endsWith("__auto__")) lname += RT.nextID(); Class primc = maybePrimitiveType(bi.init); if(primc != null) gen.visitLocalVariable(lname, Type.getDescriptor(primc), null, loopLabel, end,
final Class pc = maybePrimitiveType((Expr) args.nth(i)); if(primc == long.class)
Class primc = maybePrimitiveType(bi.init); if(primc != null) if(lname.endsWith("__auto__")) lname += RT.nextID(); Class primc = maybePrimitiveType(bi.init); if(primc != null) gen.visitLocalVariable(lname, Type.getDescriptor(primc), null, bindingLabels.get(bi), end,
try if(maybePrimitiveType(e) == paramclasses[i])
else if(maybePrimitiveType(testExpr) == boolean.class)
if(b == null || maybePrimitiveType(b.init) == null)
public void emitUnboxed(C context, ObjExpr objx, GeneratorAdapter gen){ Method ms = new Method("invokeStatic", getReturnType(), paramtypes); if(variadic) { for(int i = 0; i < paramclasses.length - 1; i++) { Expr e = (Expr) args.nth(i); if(maybePrimitiveType(e) == paramclasses[i]) { ((MaybePrimitiveExpr) e).emitUnboxed(C.EXPRESSION, objx, gen); } else { e.emit(C.EXPRESSION, objx, gen); HostExpr.emitUnboxArg(objx, gen, paramclasses[i]); } } IPersistentVector restArgs = RT.subvec(args,paramclasses.length - 1,args.count()); MethodExpr.emitArgsAsArray(restArgs,objx,gen); gen.invokeStatic(Type.getType(ArraySeq.class), Method.getMethod("clojure.lang.ArraySeq create(Object[])")); } else MethodExpr.emitTypedArgs(objx, gen, paramclasses, args); gen.invokeStatic(target, ms); }
if(Util.isPrimitive(retClass) && be.canEmitPrimitive()) Class bc = maybePrimitiveType(be); if(bc == retClass) be.emitUnboxed(C.RETURN, objx, gen);
final Class pc = maybePrimitiveType(arg); if(pc == primc) ((MaybePrimitiveExpr) arg).emitUnboxed(C.EXPRESSION, objx, gen);
if(maybePrimitiveType(init) == int.class) init = new StaticMethodExpr("", 0, 0, null, RT.class, "longCast", RT.vector(init)); else if(maybePrimitiveType(init) == float.class) init = new StaticMethodExpr("", 0, 0, null, RT.class, "doubleCast", RT.vector(init));
try final Class primc = maybePrimitiveType(e); if(primc == parameterTypes[i])
if(lname.endsWith("__auto__")) lname += RT.nextID(); Class primc = maybePrimitiveType(bi.init); if(primc != null) gen.visitLocalVariable(lname, Type.getDescriptor(primc), null, loopLabel, end,
else if(maybePrimitiveType(testExpr) == boolean.class)