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

Method emit

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

Source from the content-addressed store, hash-verified

3137 }
3138
3139 public void emit(C context, ObjExpr objx, GeneratorAdapter gen){
3140 if(this.ctor != null)
3141 {
3142 Type type = getType(c);
3143 gen.newInstance(type);
3144 gen.dup();
3145 MethodExpr.emitTypedArgs(objx, gen, ctor.getParameterTypes(), args);
3146 gen.invokeConstructor(type, new Method("<init>", Type.getConstructorDescriptor(ctor)));
3147 }
3148 else
3149 {
3150 gen.push(destubClassName(c.getName()));
3151 gen.invokeStatic(RT_TYPE, forNameMethod);
3152 MethodExpr.emitArgsAsArray(args, objx, gen);
3153 gen.invokeStatic(REFLECTOR_TYPE, invokeConstructorMethod);
3154 }
3155 if(context == C.STATEMENT)
3156 gen.pop();
3157 }
3158
3159 public boolean hasJavaClass(){
3160 return true;

Callers

nothing calls this directly

Calls 12

emitTypedArgsMethod · 0.95
emitArgsAsArrayMethod · 0.95
newInstanceMethod · 0.80
dupMethod · 0.80
destubClassNameMethod · 0.80
getNameMethod · 0.65
popMethod · 0.65
getTypeMethod · 0.45
invokeConstructorMethod · 0.45
pushMethod · 0.45
invokeStaticMethod · 0.45

Tested by

no test coverage detected