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

Method emitUnboxed

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

Source from the content-addressed store, hash-verified

2037 }
2038
2039 public void emitUnboxed(C context, ObjExpr objx, GeneratorAdapter gen){
2040 if(method != null)
2041 {
2042 Type type = Type.getType(method.getDeclaringClass());
2043 target.emit(C.EXPRESSION, objx, gen);
2044 //if(!method.getDeclaringClass().isInterface())
2045 gen.checkCast(type);
2046 MethodExpr.emitTypedArgs(objx, gen, method.getParameterTypes(), args);
2047 gen.visitLineNumber(line, gen.mark());
2048 if(tailPosition && !objx.canBeDirect)
2049 {
2050 ObjMethod method = (ObjMethod) METHOD.deref();
2051 method.emitClearThis(gen);
2052 }
2053 Method m = new Method(methodName, Type.getReturnType(method), Type.getArgumentTypes(method));
2054 if(method.getDeclaringClass().isInterface())
2055 gen.invokeInterface(type, m);
2056 else
2057 gen.invokeVirtual(type, m);
2058 }
2059 else
2060 throw new UnsupportedOperationException("Unboxed emit of unknown member");
2061 }
2062
2063 public void emit(C context, ObjExpr objx, GeneratorAdapter gen){
2064 if(method != null)

Callers

nothing calls this directly

Calls 13

getTypeMethod · 0.95
emitTypedArgsMethod · 0.95
emitClearThisMethod · 0.95
getReturnTypeMethod · 0.95
getArgumentTypesMethod · 0.95
checkCastMethod · 0.80
markMethod · 0.80
isInterfaceMethod · 0.80
invokeInterfaceMethod · 0.80
invokeVirtualMethod · 0.80
emitMethod · 0.65
derefMethod · 0.65

Tested by

no test coverage detected