Created
May 24, 2017 10:59
-
-
Save fpawel/1ac019d24cdc268c371247fa562be16e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Program | |
public static void f3(Program.Type3 _arg1) | |
{ | |
if (_arg1 is Program.Type3.Type3Case2) | |
{ | |
Program.Type3.Type3Case2 type3Case = (Program.Type3.Type3Case2)_arg1; | |
return; | |
} | |
if (!(_arg1 is Program.Type3.Type3Case3)) | |
{ | |
Program.Type3.Type3Case1 type3Case2 = (Program.Type3.Type3Case1)_arg1; | |
return; | |
} | |
Program.Type3.Type3Case3 type3Case3 = (Program.Type3.Type3Case3)_arg1; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Program | |
public static void f4(Program.Type4 _arg1) | |
{ | |
switch (_arg1.Tag) | |
{ | |
case 0: | |
{ | |
IL_1D: | |
Program.Type4.Type4Case1 type4Case = (Program.Type4.Type4Case1)_arg1; | |
return; | |
} | |
case 1: | |
{ | |
Program.Type4.Type4Case2 type4Case2 = (Program.Type4.Type4Case2)_arg1; | |
return; | |
} | |
case 2: | |
{ | |
Program.Type4.Type4Case3 type4Case3 = (Program.Type4.Type4Case3)_arg1; | |
return; | |
} | |
case 3: | |
{ | |
Program.Type4.Type4Case4 type4Case4 = (Program.Type4.Type4Case4)_arg1; | |
return; | |
} | |
} | |
goto IL_1D; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Learn more about F# at http://fsharp.org | |
// See the 'F# Tutorial' project for more help. | |
type Type2 = | |
| Type2Case1 of int | |
| Type2Case2 of int | |
let f2 = function | |
| Type2Case1 _ -> () | |
| Type2Case2 _ -> () | |
type Type3 = | |
| Type3Case1 of int | |
| Type3Case2 of int | |
| Type3Case3 of int | |
let f3 = function | |
| Type3Case1 _ -> () | |
| Type3Case2 _ -> () | |
| Type3Case3 _ -> () | |
type Type4 = | |
| Type4Case1 of int | |
| Type4Case2 of int | |
| Type4Case3 of int | |
| Type4Case4 of int | |
let f4 = function | |
| Type4Case1 _ -> () | |
| Type4Case2 _ -> () | |
| Type4Case3 _ -> () | |
| Type4Case4 _ -> () | |
type Type5 = | |
| Type5Case1 of int | |
| Type5Case2 of int | |
| Type5Case3 of int | |
| Type5Case4 of int | |
| Type5Case5 of int | |
let f5 = function | |
| Type5Case1 _ -> () | |
| Type5Case2 _ -> () | |
| Type5Case3 _ -> () | |
| Type5Case4 _ -> () | |
| Type5Case5 _ -> () | |
[<EntryPoint>] | |
let main argv = | |
f2 <| Type2Case2 0 | |
f3 <| Type3Case2 0 | |
f4 <| Type4Case2 0 | |
f5 <| Type5Case2 0 | |
0 // return an integer exit code |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using Microsoft.FSharp.Core; | |
using System; | |
using System.Collections; | |
using System.Diagnostics; | |
using System.Runtime.CompilerServices; | |
using System.Runtime.InteropServices; | |
[CompilationMapping(SourceConstructFlags.Module)] | |
public static class Program | |
{ | |
[CompilationMapping(SourceConstructFlags.SumType), DebuggerDisplay("{__DebugDisplay(),nq}")] | |
[Serializable] | |
[StructLayout(LayoutKind.Auto, CharSet = CharSet.Auto)] | |
public abstract class Type2 : IEquatable<Program.Type2>, IStructuralEquatable, IComparable<Program.Type2>, IComparable, IStructuralComparable | |
{ | |
public static class Tags | |
{ | |
public const int Type2Case1 = 0; | |
public const int Type2Case2 = 1; | |
} | |
[DebuggerDisplay("{__DebugDisplay(),nq}"), DebuggerTypeProxy(typeof(Program.Type2.Type2Case1@DebugTypeProxy))] | |
[Serializable] | |
public class Type2Case1 : Program.Type2 | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal readonly int item; | |
[CompilationMapping(SourceConstructFlags.Field, 0, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
internal Type2Case1(int item) | |
{ | |
this.item = item; | |
} | |
} | |
[DebuggerDisplay("{__DebugDisplay(),nq}"), DebuggerTypeProxy(typeof(Program.Type2.Type2Case2@DebugTypeProxy))] | |
[Serializable] | |
public class Type2Case2 : Program.Type2 | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal readonly int item; | |
[CompilationMapping(SourceConstructFlags.Field, 1, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
internal Type2Case2(int item) | |
{ | |
this.item = item; | |
} | |
} | |
internal class Type2Case1@DebugTypeProxy | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal Program.Type2.Type2Case1 _obj; | |
[CompilationMapping(SourceConstructFlags.Field, 0, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this._obj.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
public Type2Case1@DebugTypeProxy(Program.Type2.Type2Case1 obj) | |
{ | |
this._obj = obj; | |
} | |
} | |
internal class Type2Case2@DebugTypeProxy | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal Program.Type2.Type2Case2 _obj; | |
[CompilationMapping(SourceConstructFlags.Field, 1, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this._obj.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
public Type2Case2@DebugTypeProxy(Program.Type2.Type2Case2 obj) | |
{ | |
this._obj = obj; | |
} | |
} | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
public int Tag | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return (!(this is Program.Type2.Type2Case2)) ? 0 : 1; | |
} | |
} | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
public bool IsType2Case1 | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this is Program.Type2.Type2Case1; | |
} | |
} | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
public bool IsType2Case2 | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this is Program.Type2.Type2Case2; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
internal Type2() | |
{ | |
} | |
[CompilationMapping(SourceConstructFlags.UnionCase, 0)] | |
public static Program.Type2 NewType2Case1(int item) | |
{ | |
return new Program.Type2.Type2Case1(item); | |
} | |
[CompilationMapping(SourceConstructFlags.UnionCase, 1)] | |
public static Program.Type2 NewType2Case2(int item) | |
{ | |
return new Program.Type2.Type2Case2(item); | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
internal object __DebugDisplay() | |
{ | |
return ExtraTopLevelOperators.PrintFormatToString<FSharpFunc<Program.Type2, string>>(new PrintfFormat<FSharpFunc<Program.Type2, string>, Unit, string, string, string>("%+0.8A")).Invoke(this); | |
} | |
[CompilerGenerated] | |
public override string ToString() | |
{ | |
return ExtraTopLevelOperators.PrintFormatToString<FSharpFunc<Program.Type2, string>>(new PrintfFormat<FSharpFunc<Program.Type2, string>, Unit, string, string, Program.Type2>("%+A")).Invoke(this); | |
} | |
[CompilerGenerated] | |
public sealed override int CompareTo(Program.Type2 obj) | |
{ | |
if (this != null) | |
{ | |
if (obj == null) | |
{ | |
return 1; | |
} | |
int num = (!(this is Program.Type2.Type2Case2)) ? 0 : 1; | |
int num2 = (!(obj is Program.Type2.Type2Case2)) ? 0 : 1; | |
if (num != num2) | |
{ | |
return num - num2; | |
} | |
if (this is Program.Type2.Type2Case1) | |
{ | |
Program.Type2.Type2Case1 type2Case = (Program.Type2.Type2Case1)this; | |
Program.Type2.Type2Case1 type2Case2 = (Program.Type2.Type2Case1)obj; | |
IComparer genericComparer = LanguagePrimitives.GenericComparer; | |
int item = type2Case.item; | |
int item2 = type2Case2.item; | |
if (item < item2) | |
{ | |
return -1; | |
} | |
return (item > item2) ? 1 : 0; | |
} | |
else | |
{ | |
Program.Type2.Type2Case2 type2Case3 = (Program.Type2.Type2Case2)this; | |
Program.Type2.Type2Case2 type2Case4 = (Program.Type2.Type2Case2)obj; | |
IComparer genericComparer2 = LanguagePrimitives.GenericComparer; | |
int item3 = type2Case3.item; | |
int item4 = type2Case4.item; | |
if (item3 < item4) | |
{ | |
return -1; | |
} | |
return (item3 > item4) ? 1 : 0; | |
} | |
} | |
else | |
{ | |
if (obj != null) | |
{ | |
return -1; | |
} | |
return 0; | |
} | |
} | |
[CompilerGenerated] | |
public sealed override int CompareTo(object obj) | |
{ | |
return this.CompareTo((Program.Type2)obj); | |
} | |
[CompilerGenerated] | |
public sealed override int CompareTo(object obj, IComparer comp) | |
{ | |
Program.Type2 type = (Program.Type2)obj; | |
if (this != null) | |
{ | |
if ((Program.Type2)obj == null) | |
{ | |
return 1; | |
} | |
int num = (!(this is Program.Type2.Type2Case2)) ? 0 : 1; | |
Program.Type2 type2 = type; | |
int num2 = (!(type2 is Program.Type2.Type2Case2)) ? 0 : 1; | |
if (num != num2) | |
{ | |
return num - num2; | |
} | |
if (this is Program.Type2.Type2Case1) | |
{ | |
Program.Type2.Type2Case1 type2Case = (Program.Type2.Type2Case1)this; | |
Program.Type2.Type2Case1 type2Case2 = (Program.Type2.Type2Case1)type; | |
int item = type2Case.item; | |
int item2 = type2Case2.item; | |
if (item < item2) | |
{ | |
return -1; | |
} | |
return (item > item2) ? 1 : 0; | |
} | |
else | |
{ | |
Program.Type2.Type2Case2 type2Case3 = (Program.Type2.Type2Case2)this; | |
Program.Type2.Type2Case2 type2Case4 = (Program.Type2.Type2Case2)type; | |
int item3 = type2Case3.item; | |
int item4 = type2Case4.item; | |
if (item3 < item4) | |
{ | |
return -1; | |
} | |
return (item3 > item4) ? 1 : 0; | |
} | |
} | |
else | |
{ | |
if ((Program.Type2)obj != null) | |
{ | |
return -1; | |
} | |
return 0; | |
} | |
} | |
[CompilerGenerated] | |
public sealed override int GetHashCode(IEqualityComparer comp) | |
{ | |
if (this == null) | |
{ | |
return 0; | |
} | |
int num; | |
if (this is Program.Type2.Type2Case1) | |
{ | |
Program.Type2.Type2Case1 type2Case = (Program.Type2.Type2Case1)this; | |
num = 0; | |
return -1640531527 + (type2Case.item + ((num << 6) + (num >> 2))); | |
} | |
Program.Type2.Type2Case2 type2Case2 = (Program.Type2.Type2Case2)this; | |
num = 1; | |
return -1640531527 + (type2Case2.item + ((num << 6) + (num >> 2))); | |
} | |
[CompilerGenerated] | |
public sealed override int GetHashCode() | |
{ | |
return this.GetHashCode(LanguagePrimitives.GenericEqualityComparer); | |
} | |
[CompilerGenerated] | |
public sealed override bool Equals(object obj, IEqualityComparer comp) | |
{ | |
if (this == null) | |
{ | |
return obj == null; | |
} | |
Program.Type2 type = obj as Program.Type2; | |
if (type == null) | |
{ | |
return false; | |
} | |
Program.Type2 type2 = type; | |
int num = (!(this is Program.Type2.Type2Case2)) ? 0 : 1; | |
Program.Type2 type3 = type2; | |
int num2 = (!(type3 is Program.Type2.Type2Case2)) ? 0 : 1; | |
if (num != num2) | |
{ | |
return false; | |
} | |
if (this is Program.Type2.Type2Case1) | |
{ | |
Program.Type2.Type2Case1 type2Case = (Program.Type2.Type2Case1)this; | |
Program.Type2.Type2Case1 type2Case2 = (Program.Type2.Type2Case1)type2; | |
return type2Case.item == type2Case2.item; | |
} | |
Program.Type2.Type2Case2 type2Case3 = (Program.Type2.Type2Case2)this; | |
Program.Type2.Type2Case2 type2Case4 = (Program.Type2.Type2Case2)type2; | |
return type2Case3.item == type2Case4.item; | |
} | |
[CompilerGenerated] | |
public sealed override bool Equals(Program.Type2 obj) | |
{ | |
if (this == null) | |
{ | |
return obj == null; | |
} | |
if (obj == null) | |
{ | |
return false; | |
} | |
int num = (!(this is Program.Type2.Type2Case2)) ? 0 : 1; | |
int num2 = (!(obj is Program.Type2.Type2Case2)) ? 0 : 1; | |
if (num != num2) | |
{ | |
return false; | |
} | |
if (this is Program.Type2.Type2Case1) | |
{ | |
Program.Type2.Type2Case1 type2Case = (Program.Type2.Type2Case1)this; | |
Program.Type2.Type2Case1 type2Case2 = (Program.Type2.Type2Case1)obj; | |
return type2Case.item == type2Case2.item; | |
} | |
Program.Type2.Type2Case2 type2Case3 = (Program.Type2.Type2Case2)this; | |
Program.Type2.Type2Case2 type2Case4 = (Program.Type2.Type2Case2)obj; | |
return type2Case3.item == type2Case4.item; | |
} | |
[CompilerGenerated] | |
public sealed override bool Equals(object obj) | |
{ | |
Program.Type2 type = obj as Program.Type2; | |
return type != null && this.Equals(type); | |
} | |
} | |
[CompilationMapping(SourceConstructFlags.SumType), DebuggerDisplay("{__DebugDisplay(),nq}")] | |
[Serializable] | |
[StructLayout(LayoutKind.Auto, CharSet = CharSet.Auto)] | |
public abstract class Type3 : IEquatable<Program.Type3>, IStructuralEquatable, IComparable<Program.Type3>, IComparable, IStructuralComparable | |
{ | |
public static class Tags | |
{ | |
public const int Type3Case1 = 0; | |
public const int Type3Case2 = 1; | |
public const int Type3Case3 = 2; | |
} | |
[DebuggerDisplay("{__DebugDisplay(),nq}"), DebuggerTypeProxy(typeof(Program.Type3.Type3Case1@DebugTypeProxy))] | |
[Serializable] | |
public class Type3Case1 : Program.Type3 | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal readonly int item; | |
[CompilationMapping(SourceConstructFlags.Field, 0, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
internal Type3Case1(int item) | |
{ | |
this.item = item; | |
} | |
} | |
[DebuggerDisplay("{__DebugDisplay(),nq}"), DebuggerTypeProxy(typeof(Program.Type3.Type3Case2@DebugTypeProxy))] | |
[Serializable] | |
public class Type3Case2 : Program.Type3 | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal readonly int item; | |
[CompilationMapping(SourceConstructFlags.Field, 1, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
internal Type3Case2(int item) | |
{ | |
this.item = item; | |
} | |
} | |
[DebuggerDisplay("{__DebugDisplay(),nq}"), DebuggerTypeProxy(typeof(Program.Type3.Type3Case3@DebugTypeProxy))] | |
[Serializable] | |
public class Type3Case3 : Program.Type3 | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal readonly int item; | |
[CompilationMapping(SourceConstructFlags.Field, 2, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
internal Type3Case3(int item) | |
{ | |
this.item = item; | |
} | |
} | |
internal class Type3Case1@DebugTypeProxy | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal Program.Type3.Type3Case1 _obj; | |
[CompilationMapping(SourceConstructFlags.Field, 0, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this._obj.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
public Type3Case1@DebugTypeProxy(Program.Type3.Type3Case1 obj) | |
{ | |
this._obj = obj; | |
} | |
} | |
internal class Type3Case2@DebugTypeProxy | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal Program.Type3.Type3Case2 _obj; | |
[CompilationMapping(SourceConstructFlags.Field, 1, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this._obj.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
public Type3Case2@DebugTypeProxy(Program.Type3.Type3Case2 obj) | |
{ | |
this._obj = obj; | |
} | |
} | |
internal class Type3Case3@DebugTypeProxy | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal Program.Type3.Type3Case3 _obj; | |
[CompilationMapping(SourceConstructFlags.Field, 2, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this._obj.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
public Type3Case3@DebugTypeProxy(Program.Type3.Type3Case3 obj) | |
{ | |
this._obj = obj; | |
} | |
} | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
public int Tag | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return (!(this is Program.Type3.Type3Case3)) ? ((!(this is Program.Type3.Type3Case2)) ? 0 : 1) : 2; | |
} | |
} | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
public bool IsType3Case1 | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this is Program.Type3.Type3Case1; | |
} | |
} | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
public bool IsType3Case2 | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this is Program.Type3.Type3Case2; | |
} | |
} | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
public bool IsType3Case3 | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this is Program.Type3.Type3Case3; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
internal Type3() | |
{ | |
} | |
[CompilationMapping(SourceConstructFlags.UnionCase, 0)] | |
public static Program.Type3 NewType3Case1(int item) | |
{ | |
return new Program.Type3.Type3Case1(item); | |
} | |
[CompilationMapping(SourceConstructFlags.UnionCase, 1)] | |
public static Program.Type3 NewType3Case2(int item) | |
{ | |
return new Program.Type3.Type3Case2(item); | |
} | |
[CompilationMapping(SourceConstructFlags.UnionCase, 2)] | |
public static Program.Type3 NewType3Case3(int item) | |
{ | |
return new Program.Type3.Type3Case3(item); | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
internal object __DebugDisplay() | |
{ | |
return ExtraTopLevelOperators.PrintFormatToString<FSharpFunc<Program.Type3, string>>(new PrintfFormat<FSharpFunc<Program.Type3, string>, Unit, string, string, string>("%+0.8A")).Invoke(this); | |
} | |
[CompilerGenerated] | |
public override string ToString() | |
{ | |
return ExtraTopLevelOperators.PrintFormatToString<FSharpFunc<Program.Type3, string>>(new PrintfFormat<FSharpFunc<Program.Type3, string>, Unit, string, string, Program.Type3>("%+A")).Invoke(this); | |
} | |
[CompilerGenerated] | |
public sealed override int CompareTo(Program.Type3 obj) | |
{ | |
if (this != null) | |
{ | |
if (obj == null) | |
{ | |
return 1; | |
} | |
int num = (!(this is Program.Type3.Type3Case3)) ? ((!(this is Program.Type3.Type3Case2)) ? 0 : 1) : 2; | |
int num2 = (!(obj is Program.Type3.Type3Case3)) ? ((!(obj is Program.Type3.Type3Case2)) ? 0 : 1) : 2; | |
if (num != num2) | |
{ | |
return num - num2; | |
} | |
if (!(this is Program.Type3.Type3Case1)) | |
{ | |
if (!(this is Program.Type3.Type3Case2)) | |
{ | |
if (this is Program.Type3.Type3Case3) | |
{ | |
Program.Type3.Type3Case3 type3Case = (Program.Type3.Type3Case3)this; | |
Program.Type3.Type3Case3 type3Case2 = (Program.Type3.Type3Case3)obj; | |
IComparer genericComparer = LanguagePrimitives.GenericComparer; | |
int item = type3Case.item; | |
int item2 = type3Case2.item; | |
if (item < item2) | |
{ | |
return -1; | |
} | |
return (item > item2) ? 1 : 0; | |
} | |
} | |
else | |
{ | |
Program.Type3.Type3Case2 type3Case3 = (Program.Type3.Type3Case2)this; | |
Program.Type3.Type3Case2 type3Case4 = (Program.Type3.Type3Case2)obj; | |
IComparer genericComparer2 = LanguagePrimitives.GenericComparer; | |
int item3 = type3Case3.item; | |
int item4 = type3Case4.item; | |
if (item3 < item4) | |
{ | |
return -1; | |
} | |
return (item3 > item4) ? 1 : 0; | |
} | |
} | |
Program.Type3.Type3Case1 type3Case5 = (Program.Type3.Type3Case1)this; | |
Program.Type3.Type3Case1 type3Case6 = (Program.Type3.Type3Case1)obj; | |
IComparer genericComparer3 = LanguagePrimitives.GenericComparer; | |
int item5 = type3Case5.item; | |
int item6 = type3Case6.item; | |
if (item5 < item6) | |
{ | |
return -1; | |
} | |
return (item5 > item6) ? 1 : 0; | |
} | |
else | |
{ | |
if (obj != null) | |
{ | |
return -1; | |
} | |
return 0; | |
} | |
} | |
[CompilerGenerated] | |
public sealed override int CompareTo(object obj) | |
{ | |
return this.CompareTo((Program.Type3)obj); | |
} | |
[CompilerGenerated] | |
public sealed override int CompareTo(object obj, IComparer comp) | |
{ | |
Program.Type3 type = (Program.Type3)obj; | |
if (this != null) | |
{ | |
if ((Program.Type3)obj == null) | |
{ | |
return 1; | |
} | |
int num = (!(this is Program.Type3.Type3Case3)) ? ((!(this is Program.Type3.Type3Case2)) ? 0 : 1) : 2; | |
Program.Type3 type2 = type; | |
int num2 = (!(type2 is Program.Type3.Type3Case3)) ? ((!(type2 is Program.Type3.Type3Case2)) ? 0 : 1) : 2; | |
if (num != num2) | |
{ | |
return num - num2; | |
} | |
if (!(this is Program.Type3.Type3Case1)) | |
{ | |
if (!(this is Program.Type3.Type3Case2)) | |
{ | |
if (this is Program.Type3.Type3Case3) | |
{ | |
Program.Type3.Type3Case3 type3Case = (Program.Type3.Type3Case3)this; | |
Program.Type3.Type3Case3 type3Case2 = (Program.Type3.Type3Case3)type; | |
int item = type3Case.item; | |
int item2 = type3Case2.item; | |
if (item < item2) | |
{ | |
return -1; | |
} | |
return (item > item2) ? 1 : 0; | |
} | |
} | |
else | |
{ | |
Program.Type3.Type3Case2 type3Case3 = (Program.Type3.Type3Case2)this; | |
Program.Type3.Type3Case2 type3Case4 = (Program.Type3.Type3Case2)type; | |
int item3 = type3Case3.item; | |
int item4 = type3Case4.item; | |
if (item3 < item4) | |
{ | |
return -1; | |
} | |
return (item3 > item4) ? 1 : 0; | |
} | |
} | |
Program.Type3.Type3Case1 type3Case5 = (Program.Type3.Type3Case1)this; | |
Program.Type3.Type3Case1 type3Case6 = (Program.Type3.Type3Case1)type; | |
int item5 = type3Case5.item; | |
int item6 = type3Case6.item; | |
if (item5 < item6) | |
{ | |
return -1; | |
} | |
return (item5 > item6) ? 1 : 0; | |
} | |
else | |
{ | |
if ((Program.Type3)obj != null) | |
{ | |
return -1; | |
} | |
return 0; | |
} | |
} | |
[CompilerGenerated] | |
public sealed override int GetHashCode(IEqualityComparer comp) | |
{ | |
if (this != null) | |
{ | |
int num; | |
if (!(this is Program.Type3.Type3Case1)) | |
{ | |
if (this is Program.Type3.Type3Case2) | |
{ | |
Program.Type3.Type3Case2 type3Case = (Program.Type3.Type3Case2)this; | |
num = 1; | |
return -1640531527 + (type3Case.item + ((num << 6) + (num >> 2))); | |
} | |
if (this is Program.Type3.Type3Case3) | |
{ | |
Program.Type3.Type3Case3 type3Case2 = (Program.Type3.Type3Case3)this; | |
num = 2; | |
return -1640531527 + (type3Case2.item + ((num << 6) + (num >> 2))); | |
} | |
} | |
Program.Type3.Type3Case1 type3Case3 = (Program.Type3.Type3Case1)this; | |
num = 0; | |
return -1640531527 + (type3Case3.item + ((num << 6) + (num >> 2))); | |
} | |
return 0; | |
} | |
[CompilerGenerated] | |
public sealed override int GetHashCode() | |
{ | |
return this.GetHashCode(LanguagePrimitives.GenericEqualityComparer); | |
} | |
[CompilerGenerated] | |
public sealed override bool Equals(object obj, IEqualityComparer comp) | |
{ | |
if (this == null) | |
{ | |
return obj == null; | |
} | |
Program.Type3 type = obj as Program.Type3; | |
if (type == null) | |
{ | |
return false; | |
} | |
Program.Type3 type2 = type; | |
int num = (!(this is Program.Type3.Type3Case3)) ? ((!(this is Program.Type3.Type3Case2)) ? 0 : 1) : 2; | |
Program.Type3 type3 = type2; | |
int num2 = (!(type3 is Program.Type3.Type3Case3)) ? ((!(type3 is Program.Type3.Type3Case2)) ? 0 : 1) : 2; | |
if (num == num2) | |
{ | |
if (!(this is Program.Type3.Type3Case1)) | |
{ | |
if (this is Program.Type3.Type3Case2) | |
{ | |
Program.Type3.Type3Case2 type3Case = (Program.Type3.Type3Case2)this; | |
Program.Type3.Type3Case2 type3Case2 = (Program.Type3.Type3Case2)type2; | |
return type3Case.item == type3Case2.item; | |
} | |
if (this is Program.Type3.Type3Case3) | |
{ | |
Program.Type3.Type3Case3 type3Case3 = (Program.Type3.Type3Case3)this; | |
Program.Type3.Type3Case3 type3Case4 = (Program.Type3.Type3Case3)type2; | |
return type3Case3.item == type3Case4.item; | |
} | |
} | |
Program.Type3.Type3Case1 type3Case5 = (Program.Type3.Type3Case1)this; | |
Program.Type3.Type3Case1 type3Case6 = (Program.Type3.Type3Case1)type2; | |
return type3Case5.item == type3Case6.item; | |
} | |
return false; | |
} | |
[CompilerGenerated] | |
public sealed override bool Equals(Program.Type3 obj) | |
{ | |
if (this == null) | |
{ | |
return obj == null; | |
} | |
if (obj == null) | |
{ | |
return false; | |
} | |
int num = (!(this is Program.Type3.Type3Case3)) ? ((!(this is Program.Type3.Type3Case2)) ? 0 : 1) : 2; | |
int num2 = (!(obj is Program.Type3.Type3Case3)) ? ((!(obj is Program.Type3.Type3Case2)) ? 0 : 1) : 2; | |
if (num == num2) | |
{ | |
if (!(this is Program.Type3.Type3Case1)) | |
{ | |
if (this is Program.Type3.Type3Case2) | |
{ | |
Program.Type3.Type3Case2 type3Case = (Program.Type3.Type3Case2)this; | |
Program.Type3.Type3Case2 type3Case2 = (Program.Type3.Type3Case2)obj; | |
return type3Case.item == type3Case2.item; | |
} | |
if (this is Program.Type3.Type3Case3) | |
{ | |
Program.Type3.Type3Case3 type3Case3 = (Program.Type3.Type3Case3)this; | |
Program.Type3.Type3Case3 type3Case4 = (Program.Type3.Type3Case3)obj; | |
return type3Case3.item == type3Case4.item; | |
} | |
} | |
Program.Type3.Type3Case1 type3Case5 = (Program.Type3.Type3Case1)this; | |
Program.Type3.Type3Case1 type3Case6 = (Program.Type3.Type3Case1)obj; | |
return type3Case5.item == type3Case6.item; | |
} | |
return false; | |
} | |
[CompilerGenerated] | |
public sealed override bool Equals(object obj) | |
{ | |
Program.Type3 type = obj as Program.Type3; | |
return type != null && this.Equals(type); | |
} | |
} | |
[CompilationMapping(SourceConstructFlags.SumType), DebuggerDisplay("{__DebugDisplay(),nq}")] | |
[Serializable] | |
[StructLayout(LayoutKind.Auto, CharSet = CharSet.Auto)] | |
public abstract class Type4 : IEquatable<Program.Type4>, IStructuralEquatable, IComparable<Program.Type4>, IComparable, IStructuralComparable | |
{ | |
public static class Tags | |
{ | |
public const int Type4Case1 = 0; | |
public const int Type4Case2 = 1; | |
public const int Type4Case3 = 2; | |
public const int Type4Case4 = 3; | |
} | |
[DebuggerDisplay("{__DebugDisplay(),nq}"), DebuggerTypeProxy(typeof(Program.Type4.Type4Case1@DebugTypeProxy))] | |
[Serializable] | |
public class Type4Case1 : Program.Type4 | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal readonly int item; | |
[CompilationMapping(SourceConstructFlags.Field, 0, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
internal Type4Case1(int item) : base(0) | |
{ | |
this.item = item; | |
} | |
} | |
[DebuggerDisplay("{__DebugDisplay(),nq}"), DebuggerTypeProxy(typeof(Program.Type4.Type4Case2@DebugTypeProxy))] | |
[Serializable] | |
public class Type4Case2 : Program.Type4 | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal readonly int item; | |
[CompilationMapping(SourceConstructFlags.Field, 1, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
internal Type4Case2(int item) : base(1) | |
{ | |
this.item = item; | |
} | |
} | |
[DebuggerDisplay("{__DebugDisplay(),nq}"), DebuggerTypeProxy(typeof(Program.Type4.Type4Case3@DebugTypeProxy))] | |
[Serializable] | |
public class Type4Case3 : Program.Type4 | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal readonly int item; | |
[CompilationMapping(SourceConstructFlags.Field, 2, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
internal Type4Case3(int item) : base(2) | |
{ | |
this.item = item; | |
} | |
} | |
[DebuggerDisplay("{__DebugDisplay(),nq}"), DebuggerTypeProxy(typeof(Program.Type4.Type4Case4@DebugTypeProxy))] | |
[Serializable] | |
public class Type4Case4 : Program.Type4 | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal readonly int item; | |
[CompilationMapping(SourceConstructFlags.Field, 3, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
internal Type4Case4(int item) : base(3) | |
{ | |
this.item = item; | |
} | |
} | |
internal class Type4Case1@DebugTypeProxy | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal Program.Type4.Type4Case1 _obj; | |
[CompilationMapping(SourceConstructFlags.Field, 0, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this._obj.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
public Type4Case1@DebugTypeProxy(Program.Type4.Type4Case1 obj) | |
{ | |
this._obj = obj; | |
} | |
} | |
internal class Type4Case2@DebugTypeProxy | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal Program.Type4.Type4Case2 _obj; | |
[CompilationMapping(SourceConstructFlags.Field, 1, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this._obj.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
public Type4Case2@DebugTypeProxy(Program.Type4.Type4Case2 obj) | |
{ | |
this._obj = obj; | |
} | |
} | |
internal class Type4Case3@DebugTypeProxy | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal Program.Type4.Type4Case3 _obj; | |
[CompilationMapping(SourceConstructFlags.Field, 2, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this._obj.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
public Type4Case3@DebugTypeProxy(Program.Type4.Type4Case3 obj) | |
{ | |
this._obj = obj; | |
} | |
} | |
internal class Type4Case4@DebugTypeProxy | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal Program.Type4.Type4Case4 _obj; | |
[CompilationMapping(SourceConstructFlags.Field, 3, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this._obj.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
public Type4Case4@DebugTypeProxy(Program.Type4.Type4Case4 obj) | |
{ | |
this._obj = obj; | |
} | |
} | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal readonly int _tag; | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
public int Tag | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this._tag; | |
} | |
} | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
public bool IsType4Case1 | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.Tag == 0; | |
} | |
} | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
public bool IsType4Case2 | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.Tag == 1; | |
} | |
} | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
public bool IsType4Case3 | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.Tag == 2; | |
} | |
} | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
public bool IsType4Case4 | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.Tag == 3; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
internal Type4(int _tag) | |
{ | |
this._tag = _tag; | |
} | |
[CompilationMapping(SourceConstructFlags.UnionCase, 0)] | |
public static Program.Type4 NewType4Case1(int item) | |
{ | |
return new Program.Type4.Type4Case1(item); | |
} | |
[CompilationMapping(SourceConstructFlags.UnionCase, 1)] | |
public static Program.Type4 NewType4Case2(int item) | |
{ | |
return new Program.Type4.Type4Case2(item); | |
} | |
[CompilationMapping(SourceConstructFlags.UnionCase, 2)] | |
public static Program.Type4 NewType4Case3(int item) | |
{ | |
return new Program.Type4.Type4Case3(item); | |
} | |
[CompilationMapping(SourceConstructFlags.UnionCase, 3)] | |
public static Program.Type4 NewType4Case4(int item) | |
{ | |
return new Program.Type4.Type4Case4(item); | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
internal object __DebugDisplay() | |
{ | |
return ExtraTopLevelOperators.PrintFormatToString<FSharpFunc<Program.Type4, string>>(new PrintfFormat<FSharpFunc<Program.Type4, string>, Unit, string, string, string>("%+0.8A")).Invoke(this); | |
} | |
[CompilerGenerated] | |
public override string ToString() | |
{ | |
return ExtraTopLevelOperators.PrintFormatToString<FSharpFunc<Program.Type4, string>>(new PrintfFormat<FSharpFunc<Program.Type4, string>, Unit, string, string, Program.Type4>("%+A")).Invoke(this); | |
} | |
[CompilerGenerated] | |
public sealed override int CompareTo(Program.Type4 obj) | |
{ | |
if (this != null) | |
{ | |
if (obj == null) | |
{ | |
return 1; | |
} | |
int tag = this._tag; | |
int tag2 = obj._tag; | |
if (tag == tag2) | |
{ | |
switch (this.Tag) | |
{ | |
case 0: | |
{ | |
IL_4F: | |
Program.Type4.Type4Case1 type4Case = (Program.Type4.Type4Case1)this; | |
Program.Type4.Type4Case1 type4Case2 = (Program.Type4.Type4Case1)obj; | |
IComparer genericComparer = LanguagePrimitives.GenericComparer; | |
int item = type4Case.item; | |
int item2 = type4Case2.item; | |
if (item < item2) | |
{ | |
return -1; | |
} | |
return (item > item2) ? 1 : 0; | |
} | |
case 1: | |
{ | |
Program.Type4.Type4Case2 type4Case3 = (Program.Type4.Type4Case2)this; | |
Program.Type4.Type4Case2 type4Case4 = (Program.Type4.Type4Case2)obj; | |
IComparer genericComparer2 = LanguagePrimitives.GenericComparer; | |
int item3 = type4Case3.item; | |
int item4 = type4Case4.item; | |
if (item3 < item4) | |
{ | |
return -1; | |
} | |
return (item3 > item4) ? 1 : 0; | |
} | |
case 2: | |
{ | |
Program.Type4.Type4Case3 type4Case5 = (Program.Type4.Type4Case3)this; | |
Program.Type4.Type4Case3 type4Case6 = (Program.Type4.Type4Case3)obj; | |
IComparer genericComparer3 = LanguagePrimitives.GenericComparer; | |
int item5 = type4Case5.item; | |
int item6 = type4Case6.item; | |
if (item5 < item6) | |
{ | |
return -1; | |
} | |
return (item5 > item6) ? 1 : 0; | |
} | |
case 3: | |
{ | |
Program.Type4.Type4Case4 type4Case7 = (Program.Type4.Type4Case4)this; | |
Program.Type4.Type4Case4 type4Case8 = (Program.Type4.Type4Case4)obj; | |
IComparer genericComparer4 = LanguagePrimitives.GenericComparer; | |
int item7 = type4Case7.item; | |
int item8 = type4Case8.item; | |
if (item7 < item8) | |
{ | |
return -1; | |
} | |
return (item7 > item8) ? 1 : 0; | |
} | |
} | |
goto IL_4F; | |
} | |
return tag - tag2; | |
} | |
else | |
{ | |
if (obj != null) | |
{ | |
return -1; | |
} | |
return 0; | |
} | |
} | |
[CompilerGenerated] | |
public sealed override int CompareTo(object obj) | |
{ | |
return this.CompareTo((Program.Type4)obj); | |
} | |
[CompilerGenerated] | |
public sealed override int CompareTo(object obj, IComparer comp) | |
{ | |
Program.Type4 type = (Program.Type4)obj; | |
if (this != null) | |
{ | |
if ((Program.Type4)obj == null) | |
{ | |
return 1; | |
} | |
int tag = this._tag; | |
int tag2 = type._tag; | |
if (tag == tag2) | |
{ | |
switch (this.Tag) | |
{ | |
case 0: | |
{ | |
IL_5B: | |
Program.Type4.Type4Case1 type4Case = (Program.Type4.Type4Case1)this; | |
Program.Type4.Type4Case1 type4Case2 = (Program.Type4.Type4Case1)type; | |
int item = type4Case.item; | |
int item2 = type4Case2.item; | |
if (item < item2) | |
{ | |
return -1; | |
} | |
return (item > item2) ? 1 : 0; | |
} | |
case 1: | |
{ | |
Program.Type4.Type4Case2 type4Case3 = (Program.Type4.Type4Case2)this; | |
Program.Type4.Type4Case2 type4Case4 = (Program.Type4.Type4Case2)type; | |
int item3 = type4Case3.item; | |
int item4 = type4Case4.item; | |
if (item3 < item4) | |
{ | |
return -1; | |
} | |
return (item3 > item4) ? 1 : 0; | |
} | |
case 2: | |
{ | |
Program.Type4.Type4Case3 type4Case5 = (Program.Type4.Type4Case3)this; | |
Program.Type4.Type4Case3 type4Case6 = (Program.Type4.Type4Case3)type; | |
int item5 = type4Case5.item; | |
int item6 = type4Case6.item; | |
if (item5 < item6) | |
{ | |
return -1; | |
} | |
return (item5 > item6) ? 1 : 0; | |
} | |
case 3: | |
{ | |
Program.Type4.Type4Case4 type4Case7 = (Program.Type4.Type4Case4)this; | |
Program.Type4.Type4Case4 type4Case8 = (Program.Type4.Type4Case4)type; | |
int item7 = type4Case7.item; | |
int item8 = type4Case8.item; | |
if (item7 < item8) | |
{ | |
return -1; | |
} | |
return (item7 > item8) ? 1 : 0; | |
} | |
} | |
goto IL_5B; | |
} | |
return tag - tag2; | |
} | |
else | |
{ | |
if ((Program.Type4)obj != null) | |
{ | |
return -1; | |
} | |
return 0; | |
} | |
} | |
[CompilerGenerated] | |
public sealed override int GetHashCode(IEqualityComparer comp) | |
{ | |
if (this != null) | |
{ | |
switch (this.Tag) | |
{ | |
case 0: | |
{ | |
IL_2B: | |
Program.Type4.Type4Case1 type4Case = (Program.Type4.Type4Case1)this; | |
int num = 0; | |
return -1640531527 + (type4Case.item + ((num << 6) + (num >> 2))); | |
} | |
case 1: | |
{ | |
Program.Type4.Type4Case2 type4Case2 = (Program.Type4.Type4Case2)this; | |
int num = 1; | |
return -1640531527 + (type4Case2.item + ((num << 6) + (num >> 2))); | |
} | |
case 2: | |
{ | |
Program.Type4.Type4Case3 type4Case3 = (Program.Type4.Type4Case3)this; | |
int num = 2; | |
return -1640531527 + (type4Case3.item + ((num << 6) + (num >> 2))); | |
} | |
case 3: | |
{ | |
Program.Type4.Type4Case4 type4Case4 = (Program.Type4.Type4Case4)this; | |
int num = 3; | |
return -1640531527 + (type4Case4.item + ((num << 6) + (num >> 2))); | |
} | |
} | |
goto IL_2B; | |
} | |
return 0; | |
} | |
[CompilerGenerated] | |
public sealed override int GetHashCode() | |
{ | |
return this.GetHashCode(LanguagePrimitives.GenericEqualityComparer); | |
} | |
[CompilerGenerated] | |
public sealed override bool Equals(object obj, IEqualityComparer comp) | |
{ | |
if (this == null) | |
{ | |
return obj == null; | |
} | |
Program.Type4 type = obj as Program.Type4; | |
if (type == null) | |
{ | |
return false; | |
} | |
Program.Type4 type2 = type; | |
int tag = this._tag; | |
int tag2 = type2._tag; | |
if (tag == tag2) | |
{ | |
switch (this.Tag) | |
{ | |
case 0: | |
{ | |
IL_55: | |
Program.Type4.Type4Case1 type4Case = (Program.Type4.Type4Case1)this; | |
Program.Type4.Type4Case1 type4Case2 = (Program.Type4.Type4Case1)type2; | |
return type4Case.item == type4Case2.item; | |
} | |
case 1: | |
{ | |
Program.Type4.Type4Case2 type4Case3 = (Program.Type4.Type4Case2)this; | |
Program.Type4.Type4Case2 type4Case4 = (Program.Type4.Type4Case2)type2; | |
return type4Case3.item == type4Case4.item; | |
} | |
case 2: | |
{ | |
Program.Type4.Type4Case3 type4Case5 = (Program.Type4.Type4Case3)this; | |
Program.Type4.Type4Case3 type4Case6 = (Program.Type4.Type4Case3)type2; | |
return type4Case5.item == type4Case6.item; | |
} | |
case 3: | |
{ | |
Program.Type4.Type4Case4 type4Case7 = (Program.Type4.Type4Case4)this; | |
Program.Type4.Type4Case4 type4Case8 = (Program.Type4.Type4Case4)type2; | |
return type4Case7.item == type4Case8.item; | |
} | |
} | |
goto IL_55; | |
} | |
return false; | |
} | |
[CompilerGenerated] | |
public sealed override bool Equals(Program.Type4 obj) | |
{ | |
if (this == null) | |
{ | |
return obj == null; | |
} | |
if (obj == null) | |
{ | |
return false; | |
} | |
int tag = this._tag; | |
int tag2 = obj._tag; | |
if (tag == tag2) | |
{ | |
switch (this.Tag) | |
{ | |
case 0: | |
{ | |
IL_4F: | |
Program.Type4.Type4Case1 type4Case = (Program.Type4.Type4Case1)this; | |
Program.Type4.Type4Case1 type4Case2 = (Program.Type4.Type4Case1)obj; | |
return type4Case.item == type4Case2.item; | |
} | |
case 1: | |
{ | |
Program.Type4.Type4Case2 type4Case3 = (Program.Type4.Type4Case2)this; | |
Program.Type4.Type4Case2 type4Case4 = (Program.Type4.Type4Case2)obj; | |
return type4Case3.item == type4Case4.item; | |
} | |
case 2: | |
{ | |
Program.Type4.Type4Case3 type4Case5 = (Program.Type4.Type4Case3)this; | |
Program.Type4.Type4Case3 type4Case6 = (Program.Type4.Type4Case3)obj; | |
return type4Case5.item == type4Case6.item; | |
} | |
case 3: | |
{ | |
Program.Type4.Type4Case4 type4Case7 = (Program.Type4.Type4Case4)this; | |
Program.Type4.Type4Case4 type4Case8 = (Program.Type4.Type4Case4)obj; | |
return type4Case7.item == type4Case8.item; | |
} | |
} | |
goto IL_4F; | |
} | |
return false; | |
} | |
[CompilerGenerated] | |
public sealed override bool Equals(object obj) | |
{ | |
Program.Type4 type = obj as Program.Type4; | |
return type != null && this.Equals(type); | |
} | |
} | |
[CompilationMapping(SourceConstructFlags.SumType), DebuggerDisplay("{__DebugDisplay(),nq}")] | |
[Serializable] | |
[StructLayout(LayoutKind.Auto, CharSet = CharSet.Auto)] | |
public abstract class Type5 : IEquatable<Program.Type5>, IStructuralEquatable, IComparable<Program.Type5>, IComparable, IStructuralComparable | |
{ | |
public static class Tags | |
{ | |
public const int Type5Case1 = 0; | |
public const int Type5Case2 = 1; | |
public const int Type5Case3 = 2; | |
public const int Type5Case4 = 3; | |
public const int Type5Case5 = 4; | |
} | |
[DebuggerDisplay("{__DebugDisplay(),nq}"), DebuggerTypeProxy(typeof(Program.Type5.Type5Case1@DebugTypeProxy))] | |
[Serializable] | |
public class Type5Case1 : Program.Type5 | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal readonly int item; | |
[CompilationMapping(SourceConstructFlags.Field, 0, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
internal Type5Case1(int item) : base(0) | |
{ | |
this.item = item; | |
} | |
} | |
[DebuggerDisplay("{__DebugDisplay(),nq}"), DebuggerTypeProxy(typeof(Program.Type5.Type5Case2@DebugTypeProxy))] | |
[Serializable] | |
public class Type5Case2 : Program.Type5 | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal readonly int item; | |
[CompilationMapping(SourceConstructFlags.Field, 1, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
internal Type5Case2(int item) : base(1) | |
{ | |
this.item = item; | |
} | |
} | |
[DebuggerDisplay("{__DebugDisplay(),nq}"), DebuggerTypeProxy(typeof(Program.Type5.Type5Case3@DebugTypeProxy))] | |
[Serializable] | |
public class Type5Case3 : Program.Type5 | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal readonly int item; | |
[CompilationMapping(SourceConstructFlags.Field, 2, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
internal Type5Case3(int item) : base(2) | |
{ | |
this.item = item; | |
} | |
} | |
[DebuggerDisplay("{__DebugDisplay(),nq}"), DebuggerTypeProxy(typeof(Program.Type5.Type5Case4@DebugTypeProxy))] | |
[Serializable] | |
public class Type5Case4 : Program.Type5 | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal readonly int item; | |
[CompilationMapping(SourceConstructFlags.Field, 3, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
internal Type5Case4(int item) : base(3) | |
{ | |
this.item = item; | |
} | |
} | |
[DebuggerDisplay("{__DebugDisplay(),nq}"), DebuggerTypeProxy(typeof(Program.Type5.Type5Case5@DebugTypeProxy))] | |
[Serializable] | |
public class Type5Case5 : Program.Type5 | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal readonly int item; | |
[CompilationMapping(SourceConstructFlags.Field, 4, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
internal Type5Case5(int item) : base(4) | |
{ | |
this.item = item; | |
} | |
} | |
internal class Type5Case1@DebugTypeProxy | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal Program.Type5.Type5Case1 _obj; | |
[CompilationMapping(SourceConstructFlags.Field, 0, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this._obj.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
public Type5Case1@DebugTypeProxy(Program.Type5.Type5Case1 obj) | |
{ | |
this._obj = obj; | |
} | |
} | |
internal class Type5Case2@DebugTypeProxy | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal Program.Type5.Type5Case2 _obj; | |
[CompilationMapping(SourceConstructFlags.Field, 1, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this._obj.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
public Type5Case2@DebugTypeProxy(Program.Type5.Type5Case2 obj) | |
{ | |
this._obj = obj; | |
} | |
} | |
internal class Type5Case3@DebugTypeProxy | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal Program.Type5.Type5Case3 _obj; | |
[CompilationMapping(SourceConstructFlags.Field, 2, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this._obj.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
public Type5Case3@DebugTypeProxy(Program.Type5.Type5Case3 obj) | |
{ | |
this._obj = obj; | |
} | |
} | |
internal class Type5Case4@DebugTypeProxy | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal Program.Type5.Type5Case4 _obj; | |
[CompilationMapping(SourceConstructFlags.Field, 3, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this._obj.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
public Type5Case4@DebugTypeProxy(Program.Type5.Type5Case4 obj) | |
{ | |
this._obj = obj; | |
} | |
} | |
internal class Type5Case5@DebugTypeProxy | |
{ | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal Program.Type5.Type5Case5 _obj; | |
[CompilationMapping(SourceConstructFlags.Field, 4, 0), DebuggerNonUserCode, CompilerGenerated] | |
public int Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this._obj.item; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
public Type5Case5@DebugTypeProxy(Program.Type5.Type5Case5 obj) | |
{ | |
this._obj = obj; | |
} | |
} | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal readonly int _tag; | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
public int Tag | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this._tag; | |
} | |
} | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
public bool IsType5Case1 | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.Tag == 0; | |
} | |
} | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
public bool IsType5Case2 | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.Tag == 1; | |
} | |
} | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
public bool IsType5Case3 | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.Tag == 2; | |
} | |
} | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
public bool IsType5Case4 | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.Tag == 3; | |
} | |
} | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
public bool IsType5Case5 | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.Tag == 4; | |
} | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
internal Type5(int _tag) | |
{ | |
this._tag = _tag; | |
} | |
[CompilationMapping(SourceConstructFlags.UnionCase, 0)] | |
public static Program.Type5 NewType5Case1(int item) | |
{ | |
return new Program.Type5.Type5Case1(item); | |
} | |
[CompilationMapping(SourceConstructFlags.UnionCase, 1)] | |
public static Program.Type5 NewType5Case2(int item) | |
{ | |
return new Program.Type5.Type5Case2(item); | |
} | |
[CompilationMapping(SourceConstructFlags.UnionCase, 2)] | |
public static Program.Type5 NewType5Case3(int item) | |
{ | |
return new Program.Type5.Type5Case3(item); | |
} | |
[CompilationMapping(SourceConstructFlags.UnionCase, 3)] | |
public static Program.Type5 NewType5Case4(int item) | |
{ | |
return new Program.Type5.Type5Case4(item); | |
} | |
[CompilationMapping(SourceConstructFlags.UnionCase, 4)] | |
public static Program.Type5 NewType5Case5(int item) | |
{ | |
return new Program.Type5.Type5Case5(item); | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
internal object __DebugDisplay() | |
{ | |
return ExtraTopLevelOperators.PrintFormatToString<FSharpFunc<Program.Type5, string>>(new PrintfFormat<FSharpFunc<Program.Type5, string>, Unit, string, string, string>("%+0.8A")).Invoke(this); | |
} | |
[CompilerGenerated] | |
public override string ToString() | |
{ | |
return ExtraTopLevelOperators.PrintFormatToString<FSharpFunc<Program.Type5, string>>(new PrintfFormat<FSharpFunc<Program.Type5, string>, Unit, string, string, Program.Type5>("%+A")).Invoke(this); | |
} | |
[CompilerGenerated] | |
public sealed override int CompareTo(Program.Type5 obj) | |
{ | |
if (this != null) | |
{ | |
if (obj == null) | |
{ | |
return 1; | |
} | |
int tag = this._tag; | |
int tag2 = obj._tag; | |
if (tag == tag2) | |
{ | |
switch (this.Tag) | |
{ | |
case 0: | |
{ | |
IL_53: | |
Program.Type5.Type5Case1 type5Case = (Program.Type5.Type5Case1)this; | |
Program.Type5.Type5Case1 type5Case2 = (Program.Type5.Type5Case1)obj; | |
IComparer genericComparer = LanguagePrimitives.GenericComparer; | |
int item = type5Case.item; | |
int item2 = type5Case2.item; | |
if (item < item2) | |
{ | |
return -1; | |
} | |
return (item > item2) ? 1 : 0; | |
} | |
case 1: | |
{ | |
Program.Type5.Type5Case2 type5Case3 = (Program.Type5.Type5Case2)this; | |
Program.Type5.Type5Case2 type5Case4 = (Program.Type5.Type5Case2)obj; | |
IComparer genericComparer2 = LanguagePrimitives.GenericComparer; | |
int item3 = type5Case3.item; | |
int item4 = type5Case4.item; | |
if (item3 < item4) | |
{ | |
return -1; | |
} | |
return (item3 > item4) ? 1 : 0; | |
} | |
case 2: | |
{ | |
Program.Type5.Type5Case3 type5Case5 = (Program.Type5.Type5Case3)this; | |
Program.Type5.Type5Case3 type5Case6 = (Program.Type5.Type5Case3)obj; | |
IComparer genericComparer3 = LanguagePrimitives.GenericComparer; | |
int item5 = type5Case5.item; | |
int item6 = type5Case6.item; | |
if (item5 < item6) | |
{ | |
return -1; | |
} | |
return (item5 > item6) ? 1 : 0; | |
} | |
case 3: | |
{ | |
Program.Type5.Type5Case4 type5Case7 = (Program.Type5.Type5Case4)this; | |
Program.Type5.Type5Case4 type5Case8 = (Program.Type5.Type5Case4)obj; | |
IComparer genericComparer4 = LanguagePrimitives.GenericComparer; | |
int item7 = type5Case7.item; | |
int item8 = type5Case8.item; | |
if (item7 < item8) | |
{ | |
return -1; | |
} | |
return (item7 > item8) ? 1 : 0; | |
} | |
case 4: | |
{ | |
Program.Type5.Type5Case5 type5Case9 = (Program.Type5.Type5Case5)this; | |
Program.Type5.Type5Case5 type5Case10 = (Program.Type5.Type5Case5)obj; | |
IComparer genericComparer5 = LanguagePrimitives.GenericComparer; | |
int item9 = type5Case9.item; | |
int item10 = type5Case10.item; | |
if (item9 < item10) | |
{ | |
return -1; | |
} | |
return (item9 > item10) ? 1 : 0; | |
} | |
} | |
goto IL_53; | |
} | |
return tag - tag2; | |
} | |
else | |
{ | |
if (obj != null) | |
{ | |
return -1; | |
} | |
return 0; | |
} | |
} | |
[CompilerGenerated] | |
public sealed override int CompareTo(object obj) | |
{ | |
return this.CompareTo((Program.Type5)obj); | |
} | |
[CompilerGenerated] | |
public sealed override int CompareTo(object obj, IComparer comp) | |
{ | |
Program.Type5 type = (Program.Type5)obj; | |
if (this != null) | |
{ | |
if ((Program.Type5)obj == null) | |
{ | |
return 1; | |
} | |
int tag = this._tag; | |
int tag2 = type._tag; | |
if (tag == tag2) | |
{ | |
switch (this.Tag) | |
{ | |
case 0: | |
{ | |
IL_5F: | |
Program.Type5.Type5Case1 type5Case = (Program.Type5.Type5Case1)this; | |
Program.Type5.Type5Case1 type5Case2 = (Program.Type5.Type5Case1)type; | |
int item = type5Case.item; | |
int item2 = type5Case2.item; | |
if (item < item2) | |
{ | |
return -1; | |
} | |
return (item > item2) ? 1 : 0; | |
} | |
case 1: | |
{ | |
Program.Type5.Type5Case2 type5Case3 = (Program.Type5.Type5Case2)this; | |
Program.Type5.Type5Case2 type5Case4 = (Program.Type5.Type5Case2)type; | |
int item3 = type5Case3.item; | |
int item4 = type5Case4.item; | |
if (item3 < item4) | |
{ | |
return -1; | |
} | |
return (item3 > item4) ? 1 : 0; | |
} | |
case 2: | |
{ | |
Program.Type5.Type5Case3 type5Case5 = (Program.Type5.Type5Case3)this; | |
Program.Type5.Type5Case3 type5Case6 = (Program.Type5.Type5Case3)type; | |
int item5 = type5Case5.item; | |
int item6 = type5Case6.item; | |
if (item5 < item6) | |
{ | |
return -1; | |
} | |
return (item5 > item6) ? 1 : 0; | |
} | |
case 3: | |
{ | |
Program.Type5.Type5Case4 type5Case7 = (Program.Type5.Type5Case4)this; | |
Program.Type5.Type5Case4 type5Case8 = (Program.Type5.Type5Case4)type; | |
int item7 = type5Case7.item; | |
int item8 = type5Case8.item; | |
if (item7 < item8) | |
{ | |
return -1; | |
} | |
return (item7 > item8) ? 1 : 0; | |
} | |
case 4: | |
{ | |
Program.Type5.Type5Case5 type5Case9 = (Program.Type5.Type5Case5)this; | |
Program.Type5.Type5Case5 type5Case10 = (Program.Type5.Type5Case5)type; | |
int item9 = type5Case9.item; | |
int item10 = type5Case10.item; | |
if (item9 < item10) | |
{ | |
return -1; | |
} | |
return (item9 > item10) ? 1 : 0; | |
} | |
} | |
goto IL_5F; | |
} | |
return tag - tag2; | |
} | |
else | |
{ | |
if ((Program.Type5)obj != null) | |
{ | |
return -1; | |
} | |
return 0; | |
} | |
} | |
[CompilerGenerated] | |
public sealed override int GetHashCode(IEqualityComparer comp) | |
{ | |
if (this != null) | |
{ | |
switch (this.Tag) | |
{ | |
case 0: | |
{ | |
IL_2F: | |
Program.Type5.Type5Case1 type5Case = (Program.Type5.Type5Case1)this; | |
int num = 0; | |
return -1640531527 + (type5Case.item + ((num << 6) + (num >> 2))); | |
} | |
case 1: | |
{ | |
Program.Type5.Type5Case2 type5Case2 = (Program.Type5.Type5Case2)this; | |
int num = 1; | |
return -1640531527 + (type5Case2.item + ((num << 6) + (num >> 2))); | |
} | |
case 2: | |
{ | |
Program.Type5.Type5Case3 type5Case3 = (Program.Type5.Type5Case3)this; | |
int num = 2; | |
return -1640531527 + (type5Case3.item + ((num << 6) + (num >> 2))); | |
} | |
case 3: | |
{ | |
Program.Type5.Type5Case4 type5Case4 = (Program.Type5.Type5Case4)this; | |
int num = 3; | |
return -1640531527 + (type5Case4.item + ((num << 6) + (num >> 2))); | |
} | |
case 4: | |
{ | |
Program.Type5.Type5Case5 type5Case5 = (Program.Type5.Type5Case5)this; | |
int num = 4; | |
return -1640531527 + (type5Case5.item + ((num << 6) + (num >> 2))); | |
} | |
} | |
goto IL_2F; | |
} | |
return 0; | |
} | |
[CompilerGenerated] | |
public sealed override int GetHashCode() | |
{ | |
return this.GetHashCode(LanguagePrimitives.GenericEqualityComparer); | |
} | |
[CompilerGenerated] | |
public sealed override bool Equals(object obj, IEqualityComparer comp) | |
{ | |
if (this == null) | |
{ | |
return obj == null; | |
} | |
Program.Type5 type = obj as Program.Type5; | |
if (type == null) | |
{ | |
return false; | |
} | |
Program.Type5 type2 = type; | |
int tag = this._tag; | |
int tag2 = type2._tag; | |
if (tag == tag2) | |
{ | |
switch (this.Tag) | |
{ | |
case 0: | |
{ | |
IL_59: | |
Program.Type5.Type5Case1 type5Case = (Program.Type5.Type5Case1)this; | |
Program.Type5.Type5Case1 type5Case2 = (Program.Type5.Type5Case1)type2; | |
return type5Case.item == type5Case2.item; | |
} | |
case 1: | |
{ | |
Program.Type5.Type5Case2 type5Case3 = (Program.Type5.Type5Case2)this; | |
Program.Type5.Type5Case2 type5Case4 = (Program.Type5.Type5Case2)type2; | |
return type5Case3.item == type5Case4.item; | |
} | |
case 2: | |
{ | |
Program.Type5.Type5Case3 type5Case5 = (Program.Type5.Type5Case3)this; | |
Program.Type5.Type5Case3 type5Case6 = (Program.Type5.Type5Case3)type2; | |
return type5Case5.item == type5Case6.item; | |
} | |
case 3: | |
{ | |
Program.Type5.Type5Case4 type5Case7 = (Program.Type5.Type5Case4)this; | |
Program.Type5.Type5Case4 type5Case8 = (Program.Type5.Type5Case4)type2; | |
return type5Case7.item == type5Case8.item; | |
} | |
case 4: | |
{ | |
Program.Type5.Type5Case5 type5Case9 = (Program.Type5.Type5Case5)this; | |
Program.Type5.Type5Case5 type5Case10 = (Program.Type5.Type5Case5)type2; | |
return type5Case9.item == type5Case10.item; | |
} | |
} | |
goto IL_59; | |
} | |
return false; | |
} | |
[CompilerGenerated] | |
public sealed override bool Equals(Program.Type5 obj) | |
{ | |
if (this == null) | |
{ | |
return obj == null; | |
} | |
if (obj == null) | |
{ | |
return false; | |
} | |
int tag = this._tag; | |
int tag2 = obj._tag; | |
if (tag == tag2) | |
{ | |
switch (this.Tag) | |
{ | |
case 0: | |
{ | |
IL_53: | |
Program.Type5.Type5Case1 type5Case = (Program.Type5.Type5Case1)this; | |
Program.Type5.Type5Case1 type5Case2 = (Program.Type5.Type5Case1)obj; | |
return type5Case.item == type5Case2.item; | |
} | |
case 1: | |
{ | |
Program.Type5.Type5Case2 type5Case3 = (Program.Type5.Type5Case2)this; | |
Program.Type5.Type5Case2 type5Case4 = (Program.Type5.Type5Case2)obj; | |
return type5Case3.item == type5Case4.item; | |
} | |
case 2: | |
{ | |
Program.Type5.Type5Case3 type5Case5 = (Program.Type5.Type5Case3)this; | |
Program.Type5.Type5Case3 type5Case6 = (Program.Type5.Type5Case3)obj; | |
return type5Case5.item == type5Case6.item; | |
} | |
case 3: | |
{ | |
Program.Type5.Type5Case4 type5Case7 = (Program.Type5.Type5Case4)this; | |
Program.Type5.Type5Case4 type5Case8 = (Program.Type5.Type5Case4)obj; | |
return type5Case7.item == type5Case8.item; | |
} | |
case 4: | |
{ | |
Program.Type5.Type5Case5 type5Case9 = (Program.Type5.Type5Case5)this; | |
Program.Type5.Type5Case5 type5Case10 = (Program.Type5.Type5Case5)obj; | |
return type5Case9.item == type5Case10.item; | |
} | |
} | |
goto IL_53; | |
} | |
return false; | |
} | |
[CompilerGenerated] | |
public sealed override bool Equals(object obj) | |
{ | |
Program.Type5 type = obj as Program.Type5; | |
return type != null && this.Equals(type); | |
} | |
} | |
public static void f2(Program.Type2 _arg1) | |
{ | |
if (_arg1 is Program.Type2.Type2Case2) | |
{ | |
Program.Type2.Type2Case2 type2Case = (Program.Type2.Type2Case2)_arg1; | |
return; | |
} | |
Program.Type2.Type2Case1 type2Case2 = (Program.Type2.Type2Case1)_arg1; | |
} | |
public static void f3(Program.Type3 _arg1) | |
{ | |
if (_arg1 is Program.Type3.Type3Case2) | |
{ | |
Program.Type3.Type3Case2 type3Case = (Program.Type3.Type3Case2)_arg1; | |
return; | |
} | |
if (!(_arg1 is Program.Type3.Type3Case3)) | |
{ | |
Program.Type3.Type3Case1 type3Case2 = (Program.Type3.Type3Case1)_arg1; | |
return; | |
} | |
Program.Type3.Type3Case3 type3Case3 = (Program.Type3.Type3Case3)_arg1; | |
} | |
public static void f4(Program.Type4 _arg1) | |
{ | |
switch (_arg1.Tag) | |
{ | |
case 0: | |
{ | |
IL_1D: | |
Program.Type4.Type4Case1 type4Case = (Program.Type4.Type4Case1)_arg1; | |
return; | |
} | |
case 1: | |
{ | |
Program.Type4.Type4Case2 type4Case2 = (Program.Type4.Type4Case2)_arg1; | |
return; | |
} | |
case 2: | |
{ | |
Program.Type4.Type4Case3 type4Case3 = (Program.Type4.Type4Case3)_arg1; | |
return; | |
} | |
case 3: | |
{ | |
Program.Type4.Type4Case4 type4Case4 = (Program.Type4.Type4Case4)_arg1; | |
return; | |
} | |
} | |
goto IL_1D; | |
} | |
public static void f5(Program.Type5 _arg1) | |
{ | |
switch (_arg1.Tag) | |
{ | |
case 0: | |
{ | |
IL_21: | |
Program.Type5.Type5Case1 type5Case = (Program.Type5.Type5Case1)_arg1; | |
return; | |
} | |
case 1: | |
{ | |
Program.Type5.Type5Case2 type5Case2 = (Program.Type5.Type5Case2)_arg1; | |
return; | |
} | |
case 2: | |
{ | |
Program.Type5.Type5Case3 type5Case3 = (Program.Type5.Type5Case3)_arg1; | |
return; | |
} | |
case 3: | |
{ | |
Program.Type5.Type5Case4 type5Case4 = (Program.Type5.Type5Case4)_arg1; | |
return; | |
} | |
case 4: | |
{ | |
Program.Type5.Type5Case5 type5Case5 = (Program.Type5.Type5Case5)_arg1; | |
return; | |
} | |
} | |
goto IL_21; | |
} | |
[EntryPoint] | |
public static int main(string[] argv) | |
{ | |
Program.f2(Program.Type2.NewType2Case2(0)); | |
Program.f3(Program.Type3.NewType3Case2(0)); | |
Program.f4(Program.Type4.NewType4Case2(0)); | |
Program.f5(Program.Type5.NewType5Case2(0)); | |
return 0; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment