![]() |
P4C
The P4 Compiler
|
Base class for EqualityConstraint and CanBeImplicitlyCastConstraint. More...
#include <typeConstraints.h>
Public Member Functions | |
| virtual BinaryConstraint * | create (const IR::Type *left, const IR::Type *right) const =0 |
| DECLARE_TYPEINFO (BinaryConstraint, TypeConstraint) | |
Public Member Functions inherited from P4::TypeConstraint | |
| DECLARE_TYPEINFO (TypeConstraint) | |
| virtual bool | reportError (const TypeVariableSubstitution *subst) const =0 |
| template<typename... Args> | |
| bool | reportError (const TypeVariableSubstitution *subst, const char *format, Args &&...args) const |
| void | setError (std::string_view format, std::initializer_list< const IR::Node * > nodes) |
Public Member Functions inherited from IHasDbPrint | |
| virtual void | dbprint (std::ostream &out) const =0 |
| void | print () const |
Public Member Functions inherited from ICastable | |
| template<typename T > | |
| T & | as () |
| Tries to convert the class to type T. A BUG occurs if the cast fails. | |
| template<typename T > | |
| const T & | as () const |
| Tries to convert the class to type T. A BUG occurs if the cast fails. | |
| template<typename T > | |
| T * | checkedTo () |
| Performs a checked cast. A BUG occurs if the cast fails. | |
| template<typename T > | |
| const T * | checkedTo () const |
| Performs a checked cast. A BUG occurs if the cast fails. | |
Public Member Functions inherited from RTTI::Base | |
| template<typename T > | |
| bool | is () const noexcept |
| virtual bool | isA (TypeId typeId) const noexcept=0 |
| template<typename T > | |
| const T * | to () const noexcept |
Same as to, but returns const pointer to T. | |
| template<typename T > | |
| T * | to () noexcept |
| virtual TypeId | typeId () const noexcept=0 |
Public Attributes | |
| const IR::Type * | left |
| const IR::Type * | right |
Protected Member Functions | |
| BinaryConstraint (const IR::Type *left, const IR::Type *right, const IR::Node *origin) | |
| BinaryConstraint (const IR::Type *left, const IR::Type *right, const TypeConstraint *derivedFrom) | |
| void | validate () const |
Protected Member Functions inherited from P4::TypeConstraint | |
| TypeConstraint (const IR::Node *origin) | |
| TypeConstraint (const TypeConstraint *derivedFrom) | |
| std::string | explain (size_t index, Explain *explainer) const |
| std::string | localError (Explain *explainer) const |
Protected Member Functions inherited from RTTI::Base | |
| virtual const void * | toImpl (TypeId typeId) const noexcept=0 |
Additional Inherited Members | |
Protected Attributes inherited from P4::TypeConstraint | |
| const TypeConstraint * | derivedFrom = nullptr |
| Constraint which produced this one. May be nullptr. | |
| const IR::Node * | origin = nullptr |
| Place in source code which originated the contraint. May be nullptr. | |
Base class for EqualityConstraint and CanBeImplicitlyCastConstraint.