internal void ValidateInitializerMetadata(InitializerMetadata metadata)
{
DebugCheck.NotNull(metadata);
InitializerMetadata existingMetadata;
if (_initializers != null
&& _initializers.TryGetValue(metadata.ClrType, out existingMetadata))
{
// Verify the initializers are compatible.
if (!metadata.Equals(existingMetadata))
{
throw new NotSupportedException(
Strings.ELinq_UnsupportedHeterogeneousInitializers(
DescribeClrType(metadata.ClrType)));
}
}
else
{
// Register the metadata so that subsequent initializers for this type can be verified.
if (_initializers == null)
{
_initializers = new Dictionary<Type, InitializerMetadata>();
}
_initializers.Add(metadata.ClrType, metadata);
}
}