20 using System.Collections.Generic;
22 using ErrorManagement;
24 namespace TypeSystem.Constraints {
28 private string typeExpression;
36 private bool validTypeExpression =
false;
40 public bool ValidTypeExpression {
46 this.typeExpression = this.BuildTypeExpressionString();
56 public virtual bool isEmpty() {
return false; }
59 if (this.validTypeExpression)
60 return this.typeExpression;
61 return this.typeExpression = this.BuildTypeExpressionString();
64 protected abstract string BuildTypeExpressionString();
74 public abstract Constraint CloneTypeVariables(IDictionary<TypeVariable, TypeVariable> typeVariableMappings, IList<EquivalenceClass> equivalenceClasses);
This class encapsulates a location in a specific file. Implements an Inmutable pattern. So it can be used in any context, that is his internal fields never change.
Abstract class that represents all different types.
virtual bool isEmpty()
To know if any constraint has been set
Representa a method type.
override string ToString()