boolean (PsiExpression expression) { if (!(expression instanceof PsiMethodCallExpression call)) return false; if (STREAM_COLLECT.test(call)) { PsiMethodCallExpression collector = ObjectUtils.tryCast(PsiUtil.skipParenthesizedExprDown(call.getArgumentList().getExpressions()[0]), PsiMethodCallExpression.class); if (COLLECTOR_TO_COLLECTION.test(collector)) { PsiLambdaExpression lambda = ObjectUtils .tryCast(PsiUtil.skipParenthesizedExprDown(collector.getArgumentList().getExpressions()[0]), PsiLambdaExpression.class); if (lambda != null) { PsiExpression body = PsiUtil.skipParenthesizedExprDown(LambdaUtil.extractSingleExpressionFromBody(lambda.getBody())); if (body instanceof PsiReferenceExpression && ((PsiReferenceExpression)body).resolve() instanceof PsiVariable) { // .collect(toCollection(() -> var)) : the result is written into given collection return true; } } } } return false; }