jdk/src/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java
changeset 18556 0fe397a41c18
parent 18284 e281a0a2583e
child 18716 9723e722b955
equal deleted inserted replaced
18555:d69e2a644e38 18556:0fe397a41c18
   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);