// Copy constraint from resolved part to partial container
spec.SpecialConstraint = tp.spec.SpecialConstraint;
- spec.InterfacesDefined = tp.spec.InterfacesDefined;
+ spec.Interfaces = tp.spec.Interfaces;
spec.TypeArguments = tp.spec.TypeArguments;
spec.BaseType = tp.spec.BaseType;
Upper = 2
}
- protected class BoundInfo : IEquatable<BoundInfo>
+ struct BoundInfo : IEquatable<BoundInfo>
{
public readonly TypeSpec Type;
public readonly BoundKind Kind;
return Type.GetHashCode ();
}
- public virtual Expression GetTypeExpression ()
+ public Expression GetTypeExpression ()
{
return new TypeExpression (Type, Location.Null);
}
#region IEquatable<BoundInfo> Members
- public virtual bool Equals (BoundInfo other)
+ public bool Equals (BoundInfo other)
{
return Type == other.Type && Kind == other.Kind;
}
AddToBounds (new BoundInfo (type, BoundKind.Lower), 0);
}
- protected void AddToBounds (BoundInfo bound, int index)
+ void AddToBounds (BoundInfo bound, int index)
{
//
// Some types cannot be used as type arguments