internal IEnumerable <Type> AddItem(Type type) { var compiledType = new TypeValidator <TState>(type, this); Add(type, compiledType); if (compiledType.Constraints.Any()) { SetConstraints(); } foreach (var property in compiledType.Properties) { if (property.HasConstraints) { SetConstraints(); } if (property.IncludeChildren) { yield return(property.Type); } } }