Why is this an issue?

An empty code block is confusing. It will require some effort from maintainers to determine if it is intentional or indicates the implementation is incomplete.

# Noncompliant: is the block empty on purpose, or is code missing?
for i in range(3):
    pass

Removing or filling the empty code blocks takes away ambiguity and generally results in a more straightforward and less surprising code.

Exceptions

The rule ignores code blocks that contain comments.