Example #1
0
        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));
        }
Example #2
0
        public override void UnifyWithRigid(TypeVariable var, Substitution substitution)
        {
            if (var == this)
            {
                return;
            }

            if (RigidName != null)
            {
                throw RigidTypeException.Create(RigidName, var);
            }

            substitution.Bind(this, var);
        }
Example #3
0
 public virtual void UnifyWithRigid(TypeVariable var, Substitution subst)
 {
     throw RigidTypeException.Create(var.RigidName, this);
 }