(C context, ObjExpr objx, GeneratorAdapter gen)
| 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) |
nothing calls this directly
no test coverage detected