public UnionType(string name, IList <IType> types, UnionOptions options = null) : base(name) { _Types = types; _Dispatcher = options?.Dispatcher; _Eager = options?.Eager ?? true; Flags = types.Aggregate(TypeFlags.Union, (acc, type) => acc | type.Flags); ShouldAttachNode = types.Any(type => type.ShouldAttachNode); }
public static IType <S, T> Union <S, T>(UnionOptions options, params IType[] types) { var name = $"({string.Join(" | ", types.Select(type => type.Name))})"; return(new UnionType <S, T>(name, types, options)); }