private static TypeMap GetTypeMap(Symbol member) { var typeParameters = member.GetMemberTypeParameters(); return typeParameters.IsEmpty ? null : new TypeMap( typeParameters, IndexedTypeParameterSymbol.Take(member.GetMemberArity()), true); }
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)); }
/// <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)); }