internal override bool Equals(TypeSymbol t2, TypeCompareKind comparison)
            {
                if (ReferenceEquals(this, t2))
                {
                    return(true);
                }

                var other = t2 as TopLevel;

                return((object)other != null &&
                       string.Equals(MetadataName, other.MetadataName, StringComparison.Ordinal) &&
                       arity == other.arity &&
                       string.Equals(_namespaceName, other.NamespaceName, StringComparison.Ordinal) &&
                       _containingModule.Equals(other._containingModule));
            }
Beispiel #2
0
            internal override bool Equals(TypeSymbol t2, TypeCompareKind comparison)
            {
                if (ReferenceEquals(this, t2))
                {
                    return(true);
                }

                // if ignoring dynamic, then treat dynamic the same as the type 'object'
                if ((comparison & TypeCompareKind.IgnoreDynamic) != 0 &&
                    (object)t2 != null &&
                    t2.TypeKind == TypeKind.Dynamic &&
                    this.SpecialType == StarkPlatform.Compiler.SpecialType.System_Object)
                {
                    return(true);
                }

                var other = t2 as TopLevel;

                return((object)other != null &&
                       string.Equals(MetadataName, other.MetadataName, StringComparison.Ordinal) &&
                       arity == other.arity &&
                       string.Equals(_namespaceName, other.NamespaceName, StringComparison.Ordinal) &&
                       _containingModule.Equals(other._containingModule));
            }