Example #1
0
        /// <summary>
        /// Deep-clone the code object.
        /// </summary>
        public override CodeObject Clone()
        {
            TypeConstraint clone = (TypeConstraint)base.Clone();

            clone.CloneField(ref clone._type, _type);
            return(clone);
        }
        /// <summary>
        /// Parse a <see cref="TypeParameterConstraint"/>.
        /// </summary>
        public static TypeParameterConstraint Parse(Parser parser, CodeObject parent)
        {
            TypeParameterConstraint constraint;

            switch (parser.TokenText)
            {
            case ClassConstraint.ParseToken:
                constraint = new ClassConstraint(parser, parent);
                break;

            case StructConstraint.ParseToken:
                constraint = new StructConstraint(parser, parent);
                break;

            case NewConstraint.ParseToken:
                constraint = new NewConstraint(parser, parent);
                break;

            default:
                constraint = new TypeConstraint(parser, parent);
                break;
            }
            return(constraint);
        }