Skip to main content

Refusal

Enum Refusal 

Source
pub enum Refusal {
    Twice(Inst),
    Gone(Inst),
    Unknown(Inst),
    Operands(Inst),
    Imm(Inst),
    Mem(Inst),
    Scale(Inst),
    Read(Inst),
    Class(Inst),
    Edge(Block, usize),
    Args(Block, usize),
}
Expand description

Why the target or the function would not have a set.

One instruction’s refusal rather than the set’s, because a pass that wants to know what it did wrong wants to know where, and because the tests below are clearer for it. Every one of them turns down the set it is in.

Variants§

§

Twice(Inst)

The set names that instruction twice, so what it becomes depends on which half wins.

§

Gone(Inst)

That instruction is not in the function, which is a set built against a function something else has changed since.

§

Unknown(Inst)

This target has no instruction of that name.

§

Operands(Inst)

The operand vector is not the shape the opcode’s description says it is.

§

Imm(Inst)

An immediate on an instruction that carries none, or none on one that does.

§

Mem(Inst)

An addressing mode on an instruction that has none, or none on one that does.

§

Scale(Inst)

An index multiplied by something this machine cannot write.

§

Read(Inst)

Taking that instruction out would leave something reading a register it wrote.

§

Class(Inst)

A rename would put a register of one class where the instruction reads another.

§

Edge(Block, usize)

The set says twice what one edge carries, or the block it leaves has no such edge.

§

Args(Block, usize)

What the set would have an edge carry is not as many values as the block it goes to takes.

Trait Implementations§

Source§

impl Clone for Refusal

Source§

fn clone(&self) -> Refusal

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Refusal

Source§

impl Debug for Refusal

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for Refusal

Source§

impl PartialEq for Refusal

Source§

fn eq(&self, other: &Refusal) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Refusal

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.