Clarify that `{self}` imports require a module parent
The `self` keyword in a use brace (e.g., `use m::{self}`) creates a
binding for the parent entity. The note in `items.use.self.intro`
says that `self` "means the current module of the parent segment", but
there's no rule restricting what the parent can be.
The parent path must resolve to a module, enumeration, or trait --
i.e., entities that act as modules for name resolution. Using `self`
with other entities such as structs or unions is rejected by the
compiler (as of rust-lang/rust#152996).
Let's add a rule to make this restriction explicit.
This document is the primary reference for the Rust programming language.
See the Reference Developer Guide for information on contributing to the Reference.