public override Type Perform(Substitution substitution) { if (!substitution.Map.ContainsKey(this)) { return(this); } if (RigidName != null) { throw RigidTypeException.Create(RigidName, substitution.Map[this]); } return(substitution.Map[this].Perform(substitution)); }
public override void UnifyWithRigid(TypeVariable var, Substitution substitution) { if (var == this) { return; } if (RigidName != null) { throw RigidTypeException.Create(RigidName, var); } substitution.Bind(this, var); }
public virtual void UnifyWithRigid(TypeVariable var, Substitution subst) { throw RigidTypeException.Create(var.RigidName, this); }