Skip to main content

Module unreachable_enum_branching

Module unreachable_enum_branching 

Source
Expand description

A pass that eliminates branches on uninhabited or unreachable enum variants.

Re-exportsยง

use rustc_abi::Variants; ๐Ÿ”’
use rustc_data_structures::fx::FxHashSet; ๐Ÿ”’
use rustc_middle::mir::BasicBlockData; ๐Ÿ”’
use rustc_middle::mir::Body; ๐Ÿ”’
use rustc_middle::mir::Local; ๐Ÿ”’
use rustc_middle::mir::Operand; ๐Ÿ”’
use rustc_middle::mir::Rvalue; ๐Ÿ”’
use rustc_middle::mir::StatementKind; ๐Ÿ”’
use rustc_middle::mir::TerminatorKind; ๐Ÿ”’
use rustc_middle::ty::layout::TyAndLayout; ๐Ÿ”’
use rustc_middle::ty::Ty; ๐Ÿ”’
use rustc_middle::ty::TyCtxt; ๐Ÿ”’
use rustc_span::bug; ๐Ÿ”’
use tracing::trace; ๐Ÿ”’
use crate::PassPolicy; ๐Ÿ”’
use crate::patch::MirPatch; ๐Ÿ”’

Structsยง

UnreachableEnumBranching ๐Ÿ”’

Functionsยง

get_discriminant_local ๐Ÿ”’
get_switched_on_type ๐Ÿ”’
If the basic block terminates by switching on a discriminant, this returns the Ty the discriminant is read from. Otherwise, returns None.
variant_discriminants ๐Ÿ”’