17 using System.Collections.Generic;
19 using ErrorManagement;
21 namespace TypeSystem.Constraints
29 private IList<Constraint> constraints =
new List<Constraint>();
36 public IList<Constraint> Constraints
41 get {
return this.constraints; }
49 get {
return constraints.Count; }
59 get {
return this.constraints[index]; }
65 #region BuildTypeExpressionString()
69 for (
int i = 0; i < this.constraints.Count; i++)
71 sb.Append(this.constraints[i].ToString());
72 if (i < this.constraints.Count - 1)
87 this.constraints.Add(constraint);
95 return this.constraints.Count == 0;
99 #region CloneTypeVariables()
100 public override Constraint CloneTypeVariables(IDictionary<TypeVariable, TypeVariable> typeVariableMappings, IList<EquivalenceClass> equivalenceClasses)
111 foreach (
Constraint constraint
in this.constraints)
112 newConstraint.Add(constraint.CloneTypeVariables(typeVariableMappings, equivalenceClasses));
113 newConstraint.ValidTypeExpression =
false;
114 return newConstraint;
133 foreach (Constraint constraint
in this.constraints)
134 result = constraint.Check(methodAnalyzed, actualImplicitObject, showInvocationMessage, activeSortOfUnification, location);
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.
override string BuildTypeExpressionString()
Abstract class that represents all different types.
System.Text.StringBuilder StringBuilder
override bool isEmpty()
To know if any constraint has been set
Representa a method type.