//! Describes items defined or visible (ie, imported) in a certain scope.
//! This is shared between modules and blocks.
use std::{fmt, sync::LazyLock};
use base_db::Crate;
use hir_expand::{AstId, MacroCallId, attrs::AttrId, name::Name};
use indexmap::map::Entry;
use itertools::Itertools;
use la_arena::Idx;
use rustc_hash::{FxHashMap, FxHashSet};
use smallvec::{SmallVec, smallvec};
use span::Edition;
use stdx::format_to;
use syntax::ast;
use thin_vec::ThinVec;
use crate::{
AdtId, BuiltinTyp