@Nullable
  OperationChain continuationWithCast(@NotNull TypeCast cast,
                                      @NotNull ChainCompletionContext context) {
    OperationChain head = create(cast, 0, context);
    if (head == null) return null;
    ChainOperation[] newReverseOperations = ArrayUtil.append(myReverseOperations, head.getPath()[0]);
    return new OperationChain(head.getQualifierClass(), newReverseOperations, head.getHead(), myHeadMethodCall, getChainWeight());
  }
@Nullable
  OperationChain continuationWithCast(@NotNull TypeCast cast,
                                      @NotNull ChainCompletionContext context)