Struct mz_transform::update_let::UpdateLet
source · [−]pub struct UpdateLet { /* private fields */ }
Expand description
Refreshes identifiers and types for local let bindings.
The analysis is capable of handling shadowing of identifiers, which shouldn’t happen, but if it does and we wanted to kick and scream, this is one place we could do that. Instead, we’ll just come up with guaranteed unique names for each let binding.
Implementations
sourceimpl UpdateLet
impl UpdateLet
sourcepub fn transform_without_trace(
&self,
relation: &mut MirRelationExpr,
_args: TransformArgs<'_>
) -> Result<(), TransformError>
pub fn transform_without_trace(
&self,
relation: &mut MirRelationExpr,
_args: TransformArgs<'_>
) -> Result<(), TransformError>
Performs the UpdateLet
transformation without tracing the result.
sourcepub fn action(
&self,
relation: &mut MirRelationExpr,
remap: &mut HashMap<LocalId, (LocalId, RelationType)>,
id_gen: &mut IdGen
) -> Result<(), TransformError>
pub fn action(
&self,
relation: &mut MirRelationExpr,
remap: &mut HashMap<LocalId, (LocalId, RelationType)>,
id_gen: &mut IdGen
) -> Result<(), TransformError>
Re-assign type information and identifier to each Get
.
Trait Implementations
sourceimpl CheckedRecursion for UpdateLet
impl CheckedRecursion for UpdateLet
sourcefn recursion_guard(&self) -> &RecursionGuard
fn recursion_guard(&self) -> &RecursionGuard
Extracts a reference to the recursion guard embedded within the type.
sourcefn checked_recur<F, T, E>(&self, f: F) -> Result<T, E>where
F: FnOnce(&Self) -> Result<T, E>,
E: From<RecursionLimitError>,
fn checked_recur<F, T, E>(&self, f: F) -> Result<T, E>where
F: FnOnce(&Self) -> Result<T, E>,
E: From<RecursionLimitError>,
Checks whether it is safe to recur and calls
f
if so. Read moresourcefn checked_recur_mut<F, T, E>(&mut self, f: F) -> Result<T, E>where
F: FnOnce(&mut Self) -> Result<T, E>,
E: From<RecursionLimitError>,
fn checked_recur_mut<F, T, E>(&mut self, f: F) -> Result<T, E>where
F: FnOnce(&mut Self) -> Result<T, E>,
E: From<RecursionLimitError>,
sourceimpl Transform for UpdateLet
impl Transform for UpdateLet
sourcefn transform(
&self,
relation: &mut MirRelationExpr,
args: TransformArgs<'_>
) -> Result<(), TransformError>
fn transform(
&self,
relation: &mut MirRelationExpr,
args: TransformArgs<'_>
) -> Result<(), TransformError>
Transform a relation into a functionally equivalent relation.
Auto Trait Implementations
impl !RefUnwindSafe for UpdateLet
impl Send for UpdateLet
impl !Sync for UpdateLet
impl Unpin for UpdateLet
impl UnwindSafe for UpdateLet
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> FutureExt for T
impl<T> FutureExt for T
sourcefn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
sourcefn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
sourcefn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request
sourceimpl<T> Pointable for T
impl<T> Pointable for T
sourceimpl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
sourcefn into_rust(self) -> Result<R, TryFromProtoError>
fn into_rust(self) -> Result<R, TryFromProtoError>
See
RustType::from_proto
.sourcefn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
See
RustType::into_proto
.