Skip to main content

Module interner

Module interner 

Source

Re-exportsยง

use std::borrow::Borrow; ๐Ÿ”’
use std::fmt::Debug; ๐Ÿ”’
use std::fmt::Debug; ๐Ÿ”’
use std::fmt::Display; ๐Ÿ”’
use std::hash::Hash; ๐Ÿ”’
use std::hash::Hash; ๐Ÿ”’
use std::ops::Deref; ๐Ÿ”’
use rustc_ast_ir::Movability; ๐Ÿ”’
use rustc_ast_ir::visit::VisitorResult; ๐Ÿ”’
use rustc_data_structures::stable_hash::StableHash; ๐Ÿ”’
use rustc_index::bit_set::DenseBitSet; ๐Ÿ”’
use crate::fold::TypeFoldable; ๐Ÿ”’
use crate::intern::Interned; ๐Ÿ”’
use crate::ir_print::IrPrint; ๐Ÿ”’
use crate::lang_items::SolverAdtLangItem; ๐Ÿ”’
use crate::lang_items::SolverProjectionLangItem; ๐Ÿ”’
use crate::lang_items::SolverTraitLangItem; ๐Ÿ”’
use crate::relate::Relate; ๐Ÿ”’
use crate::search_graph::RequiredDepth; ๐Ÿ”’
use crate::solve::AccessedOpaques; ๐Ÿ”’
use crate::solve::CanonicalInputData; ๐Ÿ”’
use crate::solve::Certainty; ๐Ÿ”’
use crate::solve::ExternalConstraintsData; ๐Ÿ”’
use crate::solve::QueryResult; ๐Ÿ”’
use crate::solve::inspect; ๐Ÿ”’
use crate::visit::Flags; ๐Ÿ”’
use crate::visit::TypeVisitable; ๐Ÿ”’
use crate as ty; ๐Ÿ”’
use crate::AliasTermKind; ๐Ÿ”’
use crate::BoundRegion; ๐Ÿ”’
use crate::BoundVar; ๐Ÿ”’
use crate::CanonicalParamEnvCache; ๐Ÿ”’
use crate::Const; ๐Ÿ”’
use crate::ConstKind; ๐Ÿ”’
use crate::DebruijnIndex; ๐Ÿ”’
use crate::Region; ๐Ÿ”’
use crate::RegionKind; ๐Ÿ”’
use crate::RegionVid; ๐Ÿ”’
use crate::TraitRef; ๐Ÿ”’
use crate::ValTreeKind; ๐Ÿ”’
use crate::WithCachedTypeInfo; ๐Ÿ”’
use crate::search_graph; ๐Ÿ”’
use crate::inherent::*; ๐Ÿ”’

Macrosยง

declare_lift_into ๐Ÿ”’

Traitsยง

CollectAndApply
Imagine you have a function F: FnOnce(&[T]) -> R, plus an iterator iter that produces T items. You could combine them with f(&iter.collect::<Vec<_>>()), but this requires allocating memory for the Vec.
Interner
The central trait in the shared abstraction layer, specifying all implementation-specific details for rustc and rust-analyzer.
LiftInto
An interner whose associated types can be lifted into another interner J.