internal bool EqualsSig(RuntimePropertyInfo target) { //@Asymmetry - Legacy policy is to remove duplicate properties, including hidden properties. // The comparison is done by name and by sig. The EqualsSig comparison is expensive // but forutnetly it is only called when an inherited property is hidden by name or // when an interfaces declare properies with the same signature. // Note that we intentionally don't resolve generic arguments so that we don't treat // signatures that only match in certain instantiations as duplicates. This has the // down side of treating overriding and overriden properties as different properties // in some cases. But PopulateProperties in rttype.cs should have taken care of that // by comparing VTable slots. // // Class C1(Of T, Y) // Property Prop1(ByVal t1 As T) As Integer // Get // ... ... // End Get // End Property // Property Prop1(ByVal y1 As Y) As Integer // Get // ... ... // End Get // End Property // End Class // Contract.Requires(Name.Equals(target.Name)); Contract.Requires(this != target); Contract.Requires(this.ReflectedType == target.ReflectedType); return(Signature.CompareSig(this.Signature, target.Signature)); }
internal bool EqualsSig(RuntimePropertyInfo target) { return(Signature.CompareSig(this.Signature, target.Signature)); }