(GeneratorAdapter gen, ObjExpr objx, IPersistentSet letFnLocals)
| 5576 | } |
| 5577 | |
| 5578 | public void emitLetFnInits(GeneratorAdapter gen, ObjExpr objx, IPersistentSet letFnLocals){ |
| 5579 | //objx arg is enclosing objx, not this |
| 5580 | gen.checkCast(objtype); |
| 5581 | |
| 5582 | for(ISeq s = RT.keys(closes); s != null; s = s.next()) |
| 5583 | { |
| 5584 | LocalBinding lb = (LocalBinding) s.first(); |
| 5585 | if(letFnLocals.contains(lb)) |
| 5586 | { |
| 5587 | Class primc = lb.getPrimitiveType(); |
| 5588 | gen.dup(); |
| 5589 | if(primc != null) |
| 5590 | { |
| 5591 | objx.emitUnboxedLocal(gen, lb); |
| 5592 | gen.putField(objtype, lb.name, Type.getType(primc)); |
| 5593 | } |
| 5594 | else |
| 5595 | { |
| 5596 | objx.emitLocal(gen, lb, false); |
| 5597 | gen.putField(objtype, lb.name, OBJECT_TYPE); |
| 5598 | } |
| 5599 | } |
| 5600 | } |
| 5601 | gen.pop(); |
| 5602 | |
| 5603 | } |
| 5604 | |
| 5605 | public void emit(C context, ObjExpr objx, GeneratorAdapter gen){ |
| 5606 | //emitting a Fn means constructing an instance, feeding closed-overs from enclosing scope, if any |
no test coverage detected