PsiExpression (PsiForStatement loop, PsiExpression getElementExpression) { CountingLoop countingLoop = CountingLoop.from(loop); if (countingLoop == null || countingLoop.isIncluding() || countingLoop.isDescending() || !ExpressionUtils.isZero(countingLoop.getInitializer())) { return null; } IndexedContainer container = IndexedContainer.fromLengthExpression(countingLoop.getBound()); if (container == null) return null; PsiExpression index = container.extractIndexFromGetExpression(getElementExpression); if (!ExpressionUtils.isReferenceTo(index, countingLoop.getCounter())) return null; return container.getQualifier(); }