static LambdaIndy from(InvokeDynamicInsnNode indyNode) {
    Handle bsm = indyNode.bsm;
    if (LAMBDA_METAFACTORY_CLASS.equals(bsm.getOwner()) &&
        LAMBDA_METAFACTORY_METHOD.equals(bsm.getName()) &&
        LAMBDA_METAFACTORY_DESCRIPTOR.equals(bsm.getDesc()) &&
       indyNode.bsmArgs.length >= 3 && indyNode.bsmArgs[1] instanceof Handle lambdaBody && indyNode.bsmArgs[2] instanceof Type targetType) {
      Member targetMethod = new Member(lambdaBody.getOwner(), lambdaBody.getName(), lambdaBody.getDesc());
      Type retType = Type.getReturnType(indyNode.desc);
      return new LambdaIndy(lambdaBody.getTag(), targetType, targetMethod, retType);
    }
    return null;
  }
static LambdaIndy from(InvokeDynamicInsnNode indyNode)