pub struct UnrealizedConversionCastOperation<'c> { /* private fields */ }
Expand description
An unrealized_conversion_cast
operation. An unrealized conversion from one set of types to another.
An unrealized_conversion_cast
operation represents an unrealized
conversion from one set of types to another, that is used to enable the
inter-mixing of different type systems. This operation should not be
attributed any special representational or execution semantics, and is
generally only intended to be used to satisfy the temporary intermixing of
type systems during the conversion of one type system to another.
This operation may produce results of arity 1-N, and accept as input operands of arity 0-N.
Example:
// An unrealized 0-1 conversion. These types of conversions are useful in
// cases where a type is removed from the type system, but not all uses have
// been converted. For example, imagine we have a tuple type that is
// expanded to its element types. If only some uses of an empty tuple type
// instance are converted we still need an instance of the tuple type, but
// have no inputs to the unrealized conversion.
%result = unrealized_conversion_cast to !bar.tuple_type<>
// An unrealized 1-1 conversion.
%result1 = unrealized_conversion_cast %operand : !foo.type to !bar.lowered_type
// An unrealized 1-N conversion.
%results2:2 = unrealized_conversion_cast %tuple_operand : !foo.tuple_type<!foo.type, !foo.type> to !foo.type, !foo.type
// An unrealized N-1 conversion.
%result3 = unrealized_conversion_cast %operand, %operand : !foo.type, !foo.type to !bar.tuple_type<!foo.type, !foo.type>
Implementations§
source§impl<'c> UnrealizedConversionCastOperation<'c>
impl<'c> UnrealizedConversionCastOperation<'c>
sourcepub fn as_operation(&self) -> &Operation<'c>
pub fn as_operation(&self) -> &Operation<'c>
Returns a generic operation.
sourcepub fn builder(
context: &'c Context,
location: Location<'c>
) -> UnrealizedConversionCastOperationBuilder<'c, Unset, Unset>
pub fn builder( context: &'c Context, location: Location<'c> ) -> UnrealizedConversionCastOperationBuilder<'c, Unset, Unset>
Creates a builder.
pub fn outputs(&self) -> impl Iterator<Item = OperationResult<'c, '_>>
pub fn inputs(&self) -> impl Iterator<Item = Value<'c, '_>>
Trait Implementations§
source§impl<'c> From<UnrealizedConversionCastOperation<'c>> for Operation<'c>
impl<'c> From<UnrealizedConversionCastOperation<'c>> for Operation<'c>
source§fn from(operation: UnrealizedConversionCastOperation<'c>) -> Self
fn from(operation: UnrealizedConversionCastOperation<'c>) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl<'c> RefUnwindSafe for UnrealizedConversionCastOperation<'c>
impl<'c> !Send for UnrealizedConversionCastOperation<'c>
impl<'c> !Sync for UnrealizedConversionCastOperation<'c>
impl<'c> Unpin for UnrealizedConversionCastOperation<'c>
impl<'c> UnwindSafe for UnrealizedConversionCastOperation<'c>
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