Exemplo n.º 1
0
 private static TypeMap GetTypeMap(Symbol member)
 {
     var typeParameters = member.GetMemberTypeParameters();
     return typeParameters.IsEmpty ?
         null :
         new TypeMap(
             typeParameters,
             IndexedTypeParameterSymbol.Take(member.GetMemberArity()),
             true);
 }
Exemplo n.º 2
0
        private static TypeMap GetTypeMap(Symbol member)
        {
            var typeParameters = member.GetMemberTypeParameters();

            return(typeParameters.IsEmpty ?
                   null :
                   new TypeMap(
                       nonNullTypesContext: member.OriginalDefinition,
                       typeParameters,
                       IndexedTypeParameterSymbol.Take(member.GetMemberArity()),
                       true));
        }
Exemplo n.º 3
0
        /// <summary>
        /// Returns true if the two partial methods have the same constraints.
        /// </summary>
        private static bool HaveSameConstraints(SourceMemberMethodSymbol part1, SourceMemberMethodSymbol part2)
        {
            Debug.Assert(!ReferenceEquals(part1, part2));
            Debug.Assert(part1.Arity == part2.Arity);

            var typeParameters1 = part1.TypeParameters;

            int arity = typeParameters1.Length;

            if (arity == 0)
            {
                return(true);
            }

            var typeParameters2       = part2.TypeParameters;
            var indexedTypeParameters = IndexedTypeParameterSymbol.Take(arity);
            var typeMap1 = new TypeMap(typeParameters1, indexedTypeParameters, allowAlpha: true);
            var typeMap2 = new TypeMap(typeParameters2, indexedTypeParameters, allowAlpha: true);

            return(MemberSignatureComparer.HaveSameConstraints(typeParameters1, typeMap1, typeParameters2, typeMap2));
        }