Confused on the Rust Reference, about Visitem

According to the the reference, a VisItem consists of a Visibility (optional, such as pub) followed by, for example, an Implementation. However, pub is not permitted in front of impl. This seems to conflict with the reference. What is the reason for this? I'm just a beginner in Rust, so please bear with me if this sounds like a novice question.

A couple guesses are that it's accepted by the parser but rejected latee, or that the reference is just incorrect. (The grammar in the reference isn't authorative or completely accurate so far.)

Should I submit this as an issue?

If you decide to do so, I'd suggest that you file it as a bug of the documentation.
Clearly impl blocks are not candidates for VisItem.

Seems reasonable to me.

Seems that it is valid for the parser.

See Stackoverflow

pub in front of impl seems not impossible,
See extend

In conclusion, pub impl is not only acceptable to the parser, but semantically possible. The reference is right.