boolean (@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; }