110 implMethodClassName = implDefiningClass.getName().replace('.', '/'); |
110 implMethodClassName = implDefiningClass.getName().replace('.', '/'); |
111 implMethodName = implInfo.getName(); |
111 implMethodName = implInfo.getName(); |
112 implMethodDesc = implMethodType.toMethodDescriptorString(); |
112 implMethodDesc = implMethodType.toMethodDescriptorString(); |
113 Type implMethodAsmType = Type.getMethodType(implMethodDesc); |
113 Type implMethodAsmType = Type.getMethodType(implMethodDesc); |
114 implMethodArgumentTypes = implMethodAsmType.getArgumentTypes(); |
114 implMethodArgumentTypes = implMethodAsmType.getArgumentTypes(); |
115 implMethodReturnType = implMethodAsmType.getReturnType(); |
115 implMethodReturnType = (implKind == MethodHandleInfo.REF_newInvokeSpecial) |
|
116 ? Type.getObjectType(implMethodClassName) |
|
117 : implMethodAsmType.getReturnType(); |
116 constructorType = invokedType.changeReturnType(Void.TYPE); |
118 constructorType = invokedType.changeReturnType(Void.TYPE); |
117 constructorDesc = constructorType.toMethodDescriptorString(); |
119 constructorDesc = constructorType.toMethodDescriptorString(); |
118 lambdaClassName = targetClass.getName().replace('.', '/') + "$$Lambda$" + counter.incrementAndGet(); |
120 lambdaClassName = targetClass.getName().replace('.', '/') + "$$Lambda$" + counter.incrementAndGet(); |
119 cw = new ClassWriter(ClassWriter.COMPUTE_MAXS); |
121 cw = new ClassWriter(ClassWriter.COMPUTE_MAXS); |
120 argTypes = Type.getArgumentTypes(constructorDesc); |
122 argTypes = Type.getArgumentTypes(constructorDesc); |