@Override
 public void visitForeachStatement(PsiForeachStatement statement) {
   super.visitForeachStatement(statement);
   final PsiExpression iteratedValue = statement.getIteratedValue();
   if (iteratedValue == null) {
     return;
   }
   final PsiType type = iteratedValue.getType();
   if (!(type instanceof PsiArrayType)) {
     return;
   }
   final PsiArrayType arrayType = (PsiArrayType) type;
   final PsiType componentType = arrayType.getComponentType();
   if (componentType instanceof PsiPrimitiveType) {
     return;
   }
   final PsiParameter parameter = statement.getIterationParameter();
   final PsiStatement body = statement.getBody();
   if (!bodyIsArrayToCollectionCopy(body, parameter, false)) {
     return;
   }
   registerStatementError(statement);
 }