pub struct Converter<'a> {
pub cfg: &'a Cfg,
pub results: &'a Vec<BlockResult>,
pub groups: Cow<'a, [TryGroup]>,
pub dom: Cow<'a, DomInfo>,
pub pending_labels: FxHashMap<usize, String>,
/* private fields */
}Fields§
§cfg: &'a Cfg§results: &'a Vec<BlockResult>§groups: Cow<'a, [TryGroup]>§dom: Cow<'a, DomInfo>Dominators over the full method graph (for goto fallback decisions).
pending_labels: FxHashMap<usize, String>Collected label emissions: block target -> label name (for Label stmts).
Implementations§
Source§impl<'a> Converter<'a>
impl<'a> Converter<'a>
pub fn with_copied_tails(self, tails: HashSet<usize>) -> Self
pub fn with_final_fields(self, finals: HashSet<String>) -> Self
pub fn new(cfg: &'a Cfg, results: &'a Vec<BlockResult>) -> Self
Sourcepub fn with_precomputed(
cfg: &'a Cfg,
results: &'a Vec<BlockResult>,
groups: Vec<TryGroup>,
dom: DomInfo,
) -> Self
pub fn with_precomputed( cfg: &'a Cfg, results: &'a Vec<BlockResult>, groups: Vec<TryGroup>, dom: DomInfo, ) -> Self
new with the group set and dominator tree precomputed and shared
with the Structurer (see Structurer::with_precomputed_groups).
Sourcepub fn with_precomputed_ref(
cfg: &'a Cfg,
results: &'a Vec<BlockResult>,
groups: &'a [TryGroup],
dom: &'a DomInfo,
) -> Self
pub fn with_precomputed_ref( cfg: &'a Cfg, results: &'a Vec<BlockResult>, groups: &'a [TryGroup], dom: &'a DomInfo, ) -> Self
with_precomputed borrowing the shared groups/dominators instead
of taking clones: ddc computes both once per method and feeds the
SAME data to the Structurer and (per retry) the Converter — three
deep clones (groups twice, idom vec once) per method vanished.
pub fn convert(&mut self, r: Region) -> Stmt
Auto Trait Implementations§
impl<'a> !Freeze for Converter<'a>
impl<'a> !RefUnwindSafe for Converter<'a>
impl<'a> !Sync for Converter<'a>
impl<'a> Send for Converter<'a>
impl<'a> Unpin for Converter<'a>
impl<'a> UnsafeUnpin for Converter<'a>
impl<'a> UnwindSafe for Converter<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more