boolean (@NotNull CFGBuilder builder, @NotNull PsiMethodCallExpression call) { Step firstStep = buildChain(call, NULL_TERMINAL_STEP); if (firstStep == NULL_TERMINAL_STEP) { return false; } PsiExpression originalQualifier = firstStep.myCall.getMethodExpression().getQualifierExpression(); if (originalQualifier == null) return false; builder.pushExpression(originalQualifier) .chain(b -> checkAndMarkConsumed(b, originalQualifier)) .pop() .pushUnknown() .ifConditionIs(true) .chain(b -> buildStreamCFG(b, firstStep, originalQualifier, true)) .end() .push(builder.getFactory().fromDfType(SpecialField.CONSUMED_STREAM.asDfType(DfStreamStateType.OPEN) .meet(DfTypes.LOCAL_OBJECT) .meet(DfTypes.NOT_NULL_OBJECT))); return true; }