Class ObjectMutatorWithConstraintContext#

Inheritance Relationships#

Base Type#

Derived Type#

Class Documentation#

class ObjectMutatorWithConstraintContext : public tvm::tirx::StructuralMutatorWithConstraintContextObj#

Native object mutation over one constraint-aware engine and variable remap.

Override Mutate for general dispatch. Forward inherited permission to children; the entry point checks uniqueness before dispatching a native hook. Unregistered values use structural fallback. Errors propagate without restoring the context.

Subclassed by tvm::tirx::StmtExprMutatorWithConstraintContext

Public Functions

inline ObjectMutatorWithConstraintContext()#
ObjectMutatorWithConstraintContext(const ObjectMutatorWithConstraintContext&) = delete#
ObjectMutatorWithConstraintContext &operator=(const ObjectMutatorWithConstraintContext&) = delete#
virtual ffi::UnchangedOr<ffi::Any> Mutate(ffi::AnyView value, ffi::InplaceMode mode = ffi::InplaceMode::kDisallow)#

Dispatch a borrowed value after checking mutation permission and uniqueness.

inline ffi::Expected<ffi::UnchangedOr<ffi::Any>> MutateExpected(ffi::AnyView value, ffi::InplaceMode mode = ffi::InplaceMode::kDisallow) noexcept#

Protected Types

using VTable = ObjectFunctor<ffi::UnchangedOr<ffi::Any>(const ffi::Object*, ObjectMutatorWithConstraintContext*, ffi::InplaceMode)>#

Protected Functions

inline explicit ObjectMutatorWithConstraintContext(const VTable *table)#

Protected Static Functions

static inline void InitVTable(VTable *table)#
template<typename Self, typename Node>
static inline void SetDispatch(VTable *table)#