boolean (CFGBuilder builder, PsiExpression expression, NullabilityProblemKind<? super PsiExpression> problem) { PsiType optionalElementType = getOptionalElementType(expression, true); if (optionalElementType == null) return false; if (expression instanceof PsiMethodCallExpression qualifierCall) { if (OPTIONAL_EMPTY.test(qualifierCall)) { builder.pushNull(); return true; } if (pushIntermediateOperationValue(builder, qualifierCall)) { builder .dup() .wrap(DfTypes.typedObject(qualifierCall.getType(), Nullability.NOT_NULL), SpecialField.OPTIONAL_VALUE) .resultOf(qualifierCall) .pop() .assignTo(builder.createTempVariable(optionalElementType)); return true; } } builder .pushExpression(expression, problem) .unwrap(SpecialField.OPTIONAL_VALUE) .assignTo(builder.createTempVariable(optionalElementType)); return true; }