This rule raises an issue when an iteration over the items of a ``++Collection++`` is performed on a super-type of the type handled by the ``++Collection++``.
Relying on ``++Object++`` or any classes between ``++Object++`` and the real class handled by the ``++Collection++`` is not recommended. While it's accepted by the language, this practice reduces readability of the code and forces to down-cast the item of the ``++Collection++`` to be able to call a method on it while simply using the correct type in the iteration makes things more clear and simple.