Open
Description
Like items,
use
declarations are private to the containing module, by default.
However, I think this should say:
Like items,
use
declarations are private to the containing scope, by default.
For example, this code doesn't compile because the use
is private to the function's scope, not the module that contains both the const
and the function:
const FOO: NonZeroI8 = NonZeroI8::new(5);
fn bar() {
use std::num::NonZeroI8;
let another = NonZeroI8::new(3);
}
The usage of the word "module" here caused confusion in the book (which I'm also working on clarifying, but the filer assumed the reference would be more precise than the book and I don't think it is in this case): rust-lang/book#2766
This would also be a great place to link to the scopes section that this PR adds (and which I like a lot): #1040
Activity
ehuss commentedon Mar 27, 2022
Sounds reasonable to me. Also, #1052 rewrites most of the
use
chapter (to update it for 2018 path changes), though I didn't touch that visibility section.Internally to rustc, blocks are called "anonymous modules". I don't know if the original author was using this terminology. So in that way it makes sense. However, I agree that is a bit obscure and potentially confusing to most users.