// Token: 0x0600149F RID: 5279 RVA: 0x0006D630 File Offset: 0x0006B830 private static DiscriminatedUnionConverter.Union CreateUnion(Type t) { MethodCall <object, object> preComputeUnionTagReader = FSharpUtils.Instance.PreComputeUnionTagReader; object target = null; object[] array = new object[2]; array[0] = t; DiscriminatedUnionConverter.Union union = new DiscriminatedUnionConverter.Union((FSharpFunction)preComputeUnionTagReader(target, array), new List <DiscriminatedUnionConverter.UnionCase>()); MethodCall <object, object> getUnionCases = FSharpUtils.Instance.GetUnionCases; object target2 = null; object[] array2 = new object[2]; array2[0] = t; foreach (object obj in (object[])getUnionCases(target2, array2)) { int tag = (int)FSharpUtils.Instance.GetUnionCaseInfoTag(obj); string name = (string)FSharpUtils.Instance.GetUnionCaseInfoName(obj); PropertyInfo[] fields = (PropertyInfo[])FSharpUtils.Instance.GetUnionCaseInfoFields(obj, new object[0]); MethodCall <object, object> preComputeUnionReader = FSharpUtils.Instance.PreComputeUnionReader; object target3 = null; object[] array4 = new object[2]; array4[0] = obj; FSharpFunction fieldReader = (FSharpFunction)preComputeUnionReader(target3, array4); MethodCall <object, object> preComputeUnionConstructor = FSharpUtils.Instance.PreComputeUnionConstructor; object target4 = null; object[] array5 = new object[2]; array5[0] = obj; DiscriminatedUnionConverter.UnionCase item = new DiscriminatedUnionConverter.UnionCase(tag, name, fields, fieldReader, (FSharpFunction)preComputeUnionConstructor(target4, array5)); union.Cases.Add(item); } return(union); }
public UnionCase(int tag, string name, PropertyInfo[] fields, FSharpFunction fieldReader, FSharpFunction constructor) { Tag = tag; Name = name; Fields = fields; FieldReader = fieldReader; Constructor = constructor; }
public Union(FSharpFunction tagReader, List <UnionCase> cases) { TagReader = tagReader; Cases = cases; }
// Token: 0x0600192F RID: 6447 RVA: 0x0007C89C File Offset: 0x0007AA9C public Union(FSharpFunction tagReader, List <DiscriminatedUnionConverter.UnionCase> cases) { this.TagReader = tagReader; this.Cases = cases; }