Skip to main content

Module metadata

Module metadata 

Source

Re-exportsΒ§

use std::borrow::Cow; πŸ”’
use std::fmt; πŸ”’
use std::fmt::Write; πŸ”’
use std::hash::Hash; πŸ”’
use std::hash::Hash; πŸ”’
use std::hash::Hasher; πŸ”’
use std::path::PathBuf; πŸ”’
use std::assert_matches; πŸ”’
use std::iter; πŸ”’
use std::ptr; πŸ”’
use libc::c_longlong; πŸ”’
use libc::c_uint; πŸ”’
use rustc_abi::Align; πŸ”’
use rustc_abi::Endian; πŸ”’
use rustc_abi::Layout; πŸ”’
use rustc_abi::NumScalableVectors; πŸ”’
use rustc_abi::Size; πŸ”’
use rustc_ast::IntTy; πŸ”’
use rustc_ast::UintTy; πŸ”’
use rustc_codegen_ssa::debuginfo::type_names::VTableNameKind; πŸ”’
use rustc_codegen_ssa::debuginfo::type_names::cpp_like_debuginfo; πŸ”’
use rustc_hir::def::CtorKind; πŸ”’
use rustc_hir::def::DefKind; πŸ”’
use rustc_hir::def_id::DefId; πŸ”’
use rustc_hir::def_id::LOCAL_CRATE; πŸ”’
use rustc_middle::ty::layout::HasTypingEnv; πŸ”’
use rustc_middle::ty::layout::LayoutOf; πŸ”’
use rustc_middle::ty::layout::TyAndLayout; πŸ”’
use rustc_middle::ty::layout::WIDE_PTR_ADDR; πŸ”’
use rustc_middle::ty::layout::WIDE_PTR_EXTRA; πŸ”’
use rustc_middle::ty; πŸ”’
use rustc_middle::ty::AdtDef; πŸ”’
use rustc_middle::ty::AdtKind; πŸ”’
use rustc_middle::ty::ExistentialTraitRef; πŸ”’
use rustc_middle::ty::Instance; πŸ”’
use rustc_middle::ty::Ty; πŸ”’
use rustc_middle::ty::TyCtxt; πŸ”’
use rustc_middle::ty::Unnormalized; πŸ”’
use rustc_middle::ty::Visibility; πŸ”’
use rustc_session::config; πŸ”’
use rustc_session::config::DebugInfo; πŸ”’
use rustc_session::config::Lto; πŸ”’
use rustc_span::DUMMY_SP; πŸ”’
use rustc_span::FileName; πŸ”’
use rustc_span::RemapPathScopeComponents; πŸ”’
use rustc_span::SourceFile; πŸ”’
use rustc_span::Span; πŸ”’
use rustc_span::Symbol; πŸ”’
use rustc_span::bug; πŸ”’
use rustc_span::hygiene; πŸ”’
use rustc_symbol_mangling::typeid_for_trait_ref; πŸ”’
use rustc_target::spec::Arch; πŸ”’
use rustc_target::spec::DebuginfoKind; πŸ”’
use rustc_target::spec::HasTargetSpec; πŸ”’
use smallvec::smallvec; πŸ”’
use tracing::debug; πŸ”’
use tracing::instrument; πŸ”’
use tracing::instrument; πŸ”’
pub(crate) use self::type_map::TypeMap; πŸ”’
use self::type_map::DINodeCreationResult; πŸ”’
use self::type_map::Stub; πŸ”’
use self::type_map::UniqueTypeId; πŸ”’
use super::CodegenUnitDebugContext; πŸ”’
use super::namespace::mangled_name_of_instance; πŸ”’
use super::type_names::compute_debuginfo_type_name; πŸ”’
use super::type_names::compute_debuginfo_vtable_name; πŸ”’
use super::utils::DIB; πŸ”’
use super::utils::debug_context; πŸ”’
use super::utils::get_namespace_for_item; πŸ”’
use super::utils::is_node_local_to_unit; πŸ”’
use crate::common::CodegenCx; πŸ”’
use crate::debuginfo::metadata::type_map::build_type_with_children; πŸ”’
use crate::debuginfo::utils::WidePtrKind; πŸ”’
use crate::debuginfo::utils::create_DIArray; πŸ”’
use crate::debuginfo::utils::wide_pointer_kind; πŸ”’
use crate::debuginfo::DIBuilderExt; πŸ”’
use crate::debuginfo::dwarf_const; πŸ”’
use crate::llvm::debuginfo::DIBasicType; πŸ”’
use crate::llvm::debuginfo::DIBuilder; πŸ”’
use crate::llvm::debuginfo::DICompositeType; πŸ”’
use crate::llvm::debuginfo::DIDescriptor; πŸ”’
use crate::llvm::debuginfo::DIFile; πŸ”’
use crate::llvm::debuginfo::DIFlags; πŸ”’
use crate::llvm::debuginfo::DILexicalBlock; πŸ”’
use crate::llvm::debuginfo::DIScope; πŸ”’
use crate::llvm::debuginfo::DIType; πŸ”’
use crate::llvm::debuginfo::DebugEmissionKind; πŸ”’
use crate::llvm::debuginfo::DebugNameTableKind; πŸ”’
use crate::llvm; πŸ”’
use crate::llvm::FromGeneric; πŸ”’
use crate::llvm::Value; πŸ”’
use rustc_codegen_ssa::traits::*; πŸ”’

ModulesΒ§

enums πŸ”’
type_map πŸ”’

MacrosΒ§

return_if_di_node_created_in_meantime πŸ”’
Returns from the enclosing function if the type debuginfo node with the given unique ID can be found in the type map.

ConstantsΒ§

NO_GENERICS πŸ”’
A function that returns an empty list of generic parameter debuginfo nodes.
NO_SCOPE_METADATA πŸ”’
UNKNOWN_COLUMN_NUMBER πŸ”’
UNKNOWN_LINE_NUMBER πŸ”’

TraitsΒ§

MsvcBasicName πŸ”’

FunctionsΒ§

apply_vcall_visibility_metadata πŸ”’
build_basic_type_di_node πŸ”’
build_closure_env_di_node πŸ”’
Builds the debuginfo node for a closure environment.
build_compile_unit_di_node πŸ”’
build_cpp_float_struct_di_node πŸ”’
float_ty must be a ty::Float and bits_ty must be a ty::Uint. cx.size_of(bits_ty) * bits_names.len() must equal cx.size_of(float_ty).
build_dyn_type_di_node πŸ”’
Create debuginfo for dyn SomeTrait types. Currently these are empty structs we with the correct type name (e.g. β€œdyn SomeTrait<Foo, Item=u32> + Sync”).
build_field_di_node πŸ”’
Creates a DW_TAG_member entry inside the DIE represented by the given type_di_node.
build_fixed_size_array_di_node πŸ”’
Creates debuginfo for a fixed size array (e.g. [u64; 123]). For slices (that is, β€œarrays” of unknown size) use build_slice_type_di_node.
build_foreign_type_di_node πŸ”’
build_generic_type_param_di_nodes πŸ”’
Computes the type parameters for a type, if any, for the given metadata.
build_global_var_di_node πŸ”’
Creates debug information for the given global variable.
build_pointer_or_reference_di_node πŸ”’
Creates debuginfo for built-in pointer-like things:
build_scalable_vector_di_node πŸ”’
Generate debuginfo for a #[rustc_scalable_vector] type.
build_slice_type_di_node πŸ”’
Create debuginfo for [T] and str. These are unsized.
build_struct_type_di_node πŸ”’
Creates the debuginfo node for a Rust struct type. Maybe be a regular struct or a tuple-struct.
build_subroutine_type_di_node πŸ”’
build_tuple_type_di_node πŸ”’
Builds the DW_TAG_structure_type debuginfo node for a Rust tuple type.
build_union_type_di_node πŸ”’
Build the debuginfo node for a Rust union type.
build_unsafe_binder_type_di_node πŸ”’
Creates the debuginfo node for unsafe<'a> T binder types.
build_upvar_field_di_nodes πŸ”’
Builds the DW_TAG_member debuginfo nodes for the upvars of a closure or coroutine. For a coroutine, this will handle upvars shared by all states.
build_vtable_type_di_node πŸ”’
Generates LLVM debuginfo for a vtable.
create_basic_type πŸ”’
create_file πŸ”’
create_member_type πŸ”’
create_pointer_type πŸ”’
create_subroutine_type πŸ”’
create_vtable_di_node πŸ”’
Creates debug information for the given vtable, which is for the given type.
extend_scope_to_file πŸ”’
Creates an β€œextension” of an existing DIScope into another file.
file_metadata πŸ”’
file_metadata_from_def_id πŸ”’
find_vtable_behind_cast πŸ”’
Get the global variable for the vtable.
hex_encode πŸ”’
recursion_marker_type_di_node πŸ”’
size_and_align_of πŸ”’
Extract size and alignment from a TyAndLayout.
spanned_type_di_node πŸ”’
tuple_field_name πŸ”’
type_di_node πŸ”’
Get the debuginfo node for the given type.
unknown_file_metadata πŸ”’
visibility_di_flags πŸ”’
Returns the DIFlags corresponding to the visibility of the item identified by did.

Type AliasesΒ§

DefinitionLocation πŸ”’
SmallVec πŸ”’