MCPcopy Index your code
hub / github.com/clojure/clojure / emit

Method emit

src/jvm/clojure/lang/Compiler.java:1483–1507  ·  view source on GitHub ↗
(C context, ObjExpr objx, GeneratorAdapter gen)

Source from the content-addressed store, hash-verified

1481 }
1482
1483 public void emit(C context, ObjExpr objx, GeneratorAdapter gen){
1484 if(targetClass != null && field != null)
1485 {
1486 target.emit(C.EXPRESSION, objx, gen);
1487 gen.visitLineNumber(line, gen.mark());
1488 gen.checkCast(getType(targetClass));
1489 gen.getField(getType(targetClass), fieldName, Type.getType(field.getType()));
1490 //if(context != C.STATEMENT)
1491 HostExpr.emitBoxReturn(objx, gen, field.getType());
1492 if(context == C.STATEMENT)
1493 {
1494 gen.pop();
1495 }
1496 }
1497 else
1498 {
1499 target.emit(C.EXPRESSION, objx, gen);
1500 gen.visitLineNumber(line, gen.mark());
1501 gen.push(fieldName);
1502 gen.push(requireField);
1503 gen.invokeStatic(REFLECTOR_TYPE, invokeNoArgInstanceMember);
1504 if(context == C.STATEMENT)
1505 gen.pop();
1506 }
1507 }
1508
1509 public boolean hasJavaClass() {
1510 return field != null || tag != null;

Callers

nothing calls this directly

Calls 11

getTypeMethod · 0.95
emitBoxReturnMethod · 0.95
markMethod · 0.80
checkCastMethod · 0.80
emitMethod · 0.65
popMethod · 0.65
visitLineNumberMethod · 0.45
getTypeMethod · 0.45
getFieldMethod · 0.45
pushMethod · 0.45
invokeStaticMethod · 0.45

Tested by

no test coverage detected