(int firstArgToEmit, C context, ObjExpr objx, GeneratorAdapter gen)
| 4297 | } |
| 4298 | |
| 4299 | void emitArgsAndCall(int firstArgToEmit, C context, ObjExpr objx, GeneratorAdapter gen){ |
| 4300 | for(int i = firstArgToEmit; i < Math.min(MAX_POSITIONAL_ARITY, args.count()); i++) |
| 4301 | { |
| 4302 | Expr e = (Expr) args.nth(i); |
| 4303 | e.emit(C.EXPRESSION, objx, gen); |
| 4304 | } |
| 4305 | if(args.count() > MAX_POSITIONAL_ARITY) |
| 4306 | { |
| 4307 | PersistentVector restArgs = PersistentVector.EMPTY; |
| 4308 | for(int i = MAX_POSITIONAL_ARITY; i < args.count(); i++) |
| 4309 | { |
| 4310 | restArgs = restArgs.cons(args.nth(i)); |
| 4311 | } |
| 4312 | MethodExpr.emitArgsAsArray(restArgs, objx, gen); |
| 4313 | } |
| 4314 | gen.visitLineNumber(line, gen.mark()); |
| 4315 | |
| 4316 | if(tailPosition && !objx.canBeDirect) |
| 4317 | { |
| 4318 | ObjMethod method = (ObjMethod) METHOD.deref(); |
| 4319 | method.emitClearThis(gen); |
| 4320 | } |
| 4321 | |
| 4322 | gen.invokeInterface(IFN_TYPE, new Method("invoke", OBJECT_TYPE, ARG_TYPES[Math.min(MAX_POSITIONAL_ARITY + 1, |
| 4323 | args.count())])); |
| 4324 | } |
| 4325 | |
| 4326 | public boolean hasJavaClass() { |
| 4327 | return tag != null; |
no test coverage detected