@Override
  public boolean tryInlineCall(@NotNull CFGBuilder builder, @NotNull PsiMethodCallExpression call) {
    BiConsumer<CFGBuilder, PsiMethodCallExpression> terminalInliner = TERMINAL_MAPPER.mapFirst(call);
    if (terminalInliner != null) {
      PsiExpression qualifierExpression = call.getMethodExpression().getQualifierExpression();
      if (!pushOptionalValue(builder, PsiUtil.skipParenthesizedExprDown(qualifierExpression), null)) {
        return false;
      }
      terminalInliner.accept(builder, call);
      return true;
    }
    if (pushIntermediateOperationValue(builder, call)) {
      DfaVariableValue result = builder.createTempVariable(call.getType());
      builder
        .assign(result, DfTypes.typedObject(call.getType(), Nullability.NOT_NULL)) // stack: ...value opt
        .push(SpecialField.OPTIONAL_VALUE.createValue(builder.getFactory(), result)) // stack: ...value opt opt.value
        .splice(3, 1, 0, 2)
        .assign()
        .pop()
        .resultOf(call);
      return true;
    }
    if (OPTIONAL_EMPTY.test(call)) {
      builder.push(DfaOptionalSupport.getOptionalValue(false), call);
      return true;
    }
    return false;
  }
@Override
  public boolean tryInlineCall(@NotNull CFGBuilder builder, @NotNull PsiMethodCallExpression call)