private static ErrorBuilder.TypeErrorsBuilder CheckIsCopyableEnumerable(this ErrorBuilder.TypeErrorsBuilder typeErrors, Type type, MemberSettings settings) { if (!typeof(IEnumerable).IsAssignableFrom(type)) { return(typeErrors); } switch (settings.ReferenceHandling) { case ReferenceHandling.Throw: case ReferenceHandling.References: return(typeErrors); case ReferenceHandling.Structural: if (!IsCopyableCollectionType(type)) { return(typeErrors.CreateIfNull(type) .Add(new NotCopyableCollection(type))); } break; default: throw new ArgumentOutOfRangeException(); } return(typeErrors); }
internal TypeErrors(ErrorBuilder.TypeErrorsBuilder builder) : this(builder.Type, builder.Errors) { }