P4C
The P4 Compiler
|
Public Member Functions | |
TypeConstraints (const TypeVariableSubstitution *definedVariables, const P4::TypeMap *typeMap) | |
void | add (const TypeConstraint *constraint) |
void | addEqualityConstraint (const IR::Node *source, const IR::Type *left, const IR::Type *right) |
void | addImplicitCastConstraint (const IR::Node *source, const IR::Type *left, const IR::Type *right) |
void | addUnifiableTypeVariable (const IR::ITypeVar *typeVariable) |
void | dbprint (std::ostream &out) const |
const TypeVariableSubstitution * | getCurrentSubstitution () const |
bool | isUnifiableTypeVariable (const IR::Type *type) |
TypeVariableSubstitution * | solve () |
bool | solve (const BinaryConstraint *constraint) |
Public Member Functions inherited from P4::IHasDbPrint | |
void | print () const |
Public Attributes | |
TypeVariableSubstitutionVisitor | replaceVariables |
|
virtual |
Implements P4::IHasDbPrint.
bool P4::TypeConstraints::isUnifiableTypeVariable | ( | const IR::Type * | type | ) |
True if type is a type variable that can be unified. A variable is unifiable if it is marked so and it not already part of definedVariables.