public ResolveResultConverterStrategyTuple(Type tupleType) : base(tupleType) { _componentStrategies = HarshTuple.GetComponentTypes(tupleType) .Select(GetNestedTupleStrategy) .ToImmutableArray(); }
private static void AddComponentsFlat(ImmutableArray <Type> .Builder result, Type t) { if (HarshTuple.IsTupleType(t)) { foreach (var ct in HarshTuple.GetComponentTypes(t)) { AddComponentsFlat(result, ct); } } else if (HarshGrouping.IsGroupingType(t)) { AddComponentsFlat(result, t.GenericTypeArguments[0]); AddComponentsFlat(result, t.GenericTypeArguments[1]); } else { result.Add(t); } }
public void GetComponentTypes_returns_components(Type t, Type[] expected) { Assert.Equal(expected, HarshTuple.GetComponentTypes(t)); }
public void GetComponentTypes_fails_for_unconstructed_tuple(Type t) { Assert.Throws <ArgumentException>( () => HarshTuple.GetComponentTypes(t) ); }