mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-23 15:23:46 +00:00
7dffd24da5
Suggest publicly accessible paths for items in private mod: When encountering a path in non-import situations that are not reachable due to privacy constraints, search for any public re-exports that the user could use instead. Track whether an import suggestion is offering a re-export. When encountering a path with private segments, mention if the item at the final path segment is not publicly accessible at all. Add item visibility metadata to privacy errors from imports: On unreachable imports, record the item that was being imported in order to suggest publicly available re-exports or to be explicit that the item is not available publicly from any path. In order to allow this, we add a mode to `resolve_path` that will not add new privacy errors, nor return early if it encounters one. This way we can get the `Res` corresponding to the final item in the import, which is used in the privacy error machinery. |
||
---|---|---|
.. | ||
auxiliary | ||
expr_add.rs | ||
expr_add.stderr | ||
expr_again.rs | ||
expr_again.stderr | ||
expr_andand.rs | ||
expr_array.rs | ||
expr_array.stderr | ||
expr_assign.rs | ||
expr_assign.stderr | ||
expr_block.rs | ||
expr_block.stderr | ||
expr_call.rs | ||
expr_call.stderr | ||
expr_cast.rs | ||
expr_cast.stderr | ||
expr_if.rs | ||
expr_if.stderr | ||
expr_loop.rs | ||
expr_loop.stderr | ||
expr_match.rs | ||
expr_match.stderr | ||
expr_method.rs | ||
expr_method.stderr | ||
expr_oror.rs | ||
expr_repeat.rs | ||
expr_repeat.stderr | ||
expr_return_in_macro.rs | ||
expr_return_in_macro.stderr | ||
expr_return.rs | ||
expr_return.stderr | ||
expr_struct.rs | ||
expr_struct.stderr | ||
expr_tup.rs | ||
expr_tup.stderr | ||
expr_type.rs | ||
expr_type.stderr | ||
expr_unary.rs | ||
expr_unary.stderr | ||
expr_while.rs | ||
expr_while.stderr | ||
foreign-priv.rs | ||
issue-948.rs | ||
issue-11225-1.rs | ||
issue-11225-2.rs | ||
issue-11225-3.rs | ||
reachable-unnameable-type-alias.rs | ||
README.md | ||
unreachable-arm.rs | ||
unreachable-arm.stderr | ||
unreachable-code-ret.rs | ||
unreachable-code-ret.stderr | ||
unreachable-code.rs | ||
unreachable-code.stderr | ||
unreachable-in-call.rs | ||
unreachable-in-call.stderr | ||
unreachable-loop-patterns.rs | ||
unreachable-loop-patterns.stderr | ||
unreachable-try-pattern.rs | ||
unreachable-try-pattern.stderr | ||
unreachable-variant.rs | ||
unreachable-variant.stderr | ||
unwarned-match-on-never.rs | ||
unwarned-match-on-never.stderr |
A variety of tests around reachability. These tests in general check two things:
- that we get unreachable code warnings in reasonable locations;
- that we permit coercions into
!
from expressions which diverge, where an expression "diverges" if it must execute some subexpression of type!
, or it has type!
itself.