void (@NotNull PsiForeachStatement statement) { PsiExpression iteratedValue = deparenthesizeExpression(statement.getIteratedValue()); if (iteratedValue instanceof PsiTypeCastExpression) { PsiExpression operand = ((PsiTypeCastExpression)iteratedValue).getOperand(); if (operand != null) { PsiType collectionItemType = JavaGenericsUtil.getCollectionItemType(operand.getType(), statement.getResolveScope()); if (collectionItemType != null && TypeConversionUtil.isAssignable(statement.getIterationParameter().getType(), collectionItemType)) { addToResults((PsiTypeCastExpression)iteratedValue); } } } super.visitForeachStatement(statement); }