From 6990b89b2650d8263dad348173f4f729d6753360 Mon Sep 17 00:00:00 2001 From: Jonas Schievink Date: Sun, 28 Feb 2021 04:39:38 +0100 Subject: Restrict visibilities to the containing DefMap --- crates/hir_def/src/body/tests/block.rs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'crates/hir_def/src/body/tests/block.rs') diff --git a/crates/hir_def/src/body/tests/block.rs b/crates/hir_def/src/body/tests/block.rs index a5ec0883f..8bca72a17 100644 --- a/crates/hir_def/src/body/tests/block.rs +++ b/crates/hir_def/src/body/tests/block.rs @@ -259,3 +259,32 @@ fn main() { "#]], ); } + +#[test] +fn underscore_import() { + // This used to panic, because the default (private) visibility inside block expressions would + // point into the containing `DefMap`, which visibilities should never be able to do. + mark::check!(adjust_vis_in_block_def_map); + check_at( + r#" +mod m { + fn main() { + use Tr as _; + trait Tr {} + $0 + } +} + "#, + expect![[r#" + block scope + _: t + Tr: t + + crate + m: t + + crate::m + main: v + "#]], + ); +} -- cgit v1.2.3