MLIR 22.0.0git
mlir::irdl::BaseTypeConstraint Class Reference

A constraint that checks that a type is of a given type base (e.g. More...

#include "mlir/Dialect/IRDL/IRDLVerifiers.h"

Inheritance diagram for mlir::irdl::BaseTypeConstraint:

Public Member Functions

 BaseTypeConstraint (TypeID baseTypeID, StringRef baseName)
virtual ~BaseTypeConstraint ()=default
LogicalResult verify (function_ref< InFlightDiagnostic()> emitError, Attribute attr, ConstraintVerifier &context) const override
 Check that an attribute is satisfying the constraint.
Public Member Functions inherited from mlir::irdl::Constraint
virtual ~Constraint ()=default

Detailed Description

A constraint that checks that a type is of a given type base (e.g.

IntegerType).

Definition at line 127 of file IRDLVerifiers.h.

Constructor & Destructor Documentation

◆ BaseTypeConstraint()

mlir::irdl::BaseTypeConstraint::BaseTypeConstraint ( TypeID baseTypeID,
StringRef baseName )
inline

Definition at line 129 of file IRDLVerifiers.h.

◆ ~BaseTypeConstraint()

virtual mlir::irdl::BaseTypeConstraint::~BaseTypeConstraint ( )
virtualdefault

References mlir::emitError().

Member Function Documentation

◆ verify()

LogicalResult BaseTypeConstraint::verify ( function_ref< InFlightDiagnostic()> emitError,
Attribute attr,
ConstraintVerifier & context ) const
overridevirtual

Check that an attribute is satisfying the constraint.

Constraints may call other constraint verifiers. If that is the case, the constraint verifier will check if the variable is already assigned, and if so, check that the attribute is the same as the one assigned. If the variable is not assigned, the constraint verifier will assign the attribute to the variable, and check that the constraint is satisfied.

Implements mlir::irdl::Constraint.

Definition at line 82 of file IRDLVerifiers.cpp.

References mlir::emitError(), mlir::Type::getAbstractType(), mlir::AbstractType::getName(), mlir::Type::getTypeID(), and success().


The documentation for this class was generated from the following files: