Advertisement
slik1977

Task2Decompile_F#_to_C#Evtyukhov

Feb 24th, 2022
255
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 36.02 KB | None | 0 0
  1. using System;
  2. using System.Collections;
  3. using System.Diagnostics;
  4. using System.IO;
  5. using System.Reflection;
  6. using System.Runtime.CompilerServices;
  7. using System.Runtime.InteropServices;
  8. using <StartupCode$_>;
  9. using Microsoft.FSharp.Collections;
  10. using Microsoft.FSharp.Core;
  11.  
  12. [assembly: FSharpInterfaceDataVersion(2, 0, 0)]
  13. [assembly: AssemblyVersion("0.0.0.0")]
  14. [CompilationMapping(SourceConstructFlags.Module)]
  15. public static class MyProgram
  16. {
  17.     [Serializable]
  18.     [StructLayout(LayoutKind.Auto, CharSet = CharSet.Auto)]
  19.     [DebuggerDisplay("{__DebugDisplay(),nq}")]
  20.     [CompilationMapping(SourceConstructFlags.SumType)]
  21.     public abstract class GeometricFigure : IEquatable<GeometricFigure>, IStructuralEquatable, IComparable<GeometricFigure>, IComparable, IStructuralComparable
  22.     {
  23.         public static class Tags
  24.         {
  25.             public const int Rectangle = 0;
  26.  
  27.             public const int Circle = 1;
  28.  
  29.             public const int Triangle = 2;
  30.  
  31.             public const int Ellipse = 3;
  32.         }
  33.  
  34.         [Serializable]
  35.         [SpecialName]
  36.         [DebuggerTypeProxy(typeof(Rectangle@DebugTypeProxy))]
  37.         [DebuggerDisplay("{__DebugDisplay(),nq}")]
  38.         public class Rectangle : GeometricFigure
  39.         {
  40.             [DebuggerBrowsable(DebuggerBrowsableState.Never)]
  41.             [CompilerGenerated]
  42.             [DebuggerNonUserCode]
  43.             internal readonly double _width;
  44.  
  45.             [DebuggerBrowsable(DebuggerBrowsableState.Never)]
  46.             [CompilerGenerated]
  47.             [DebuggerNonUserCode]
  48.             internal readonly double _length;
  49.  
  50.             [CompilationMapping(SourceConstructFlags.Field, 0, 0)]
  51.             [CompilerGenerated]
  52.             [DebuggerNonUserCode]
  53.             public double width
  54.             {
  55.                 [CompilerGenerated]
  56.                 [DebuggerNonUserCode]
  57.                 get
  58.                 {
  59.                     return _width;
  60.                 }
  61.             }
  62.  
  63.             [CompilationMapping(SourceConstructFlags.Field, 0, 1)]
  64.             [CompilerGenerated]
  65.             [DebuggerNonUserCode]
  66.             public double length
  67.             {
  68.                 [CompilerGenerated]
  69.                 [DebuggerNonUserCode]
  70.                 get
  71.                 {
  72.                     return _length;
  73.                 }
  74.             }
  75.  
  76.             [CompilerGenerated]
  77.             [DebuggerNonUserCode]
  78.             internal Rectangle(double _width, double _length)
  79.                 : base(0)
  80.             {
  81.                 this._width = _width;
  82.                 this._length = _length;
  83.             }
  84.         }
  85.  
  86.         [Serializable]
  87.         [SpecialName]
  88.         [DebuggerTypeProxy(typeof(Circle@DebugTypeProxy))]
  89.         [DebuggerDisplay("{__DebugDisplay(),nq}")]
  90.         public class Circle : GeometricFigure
  91.         {
  92.             [DebuggerBrowsable(DebuggerBrowsableState.Never)]
  93.             [CompilerGenerated]
  94.             [DebuggerNonUserCode]
  95.             internal readonly double _radius;
  96.  
  97.             [CompilationMapping(SourceConstructFlags.Field, 1, 0)]
  98.             [CompilerGenerated]
  99.             [DebuggerNonUserCode]
  100.             public double radius
  101.             {
  102.                 [CompilerGenerated]
  103.                 [DebuggerNonUserCode]
  104.                 get
  105.                 {
  106.                     return _radius;
  107.                 }
  108.             }
  109.  
  110.             [CompilerGenerated]
  111.             [DebuggerNonUserCode]
  112.             internal Circle(double _radius)
  113.                 : base(1)
  114.             {
  115.                 this._radius = _radius;
  116.             }
  117.         }
  118.  
  119.         [Serializable]
  120.         [SpecialName]
  121.         [DebuggerTypeProxy(typeof(Triangle@DebugTypeProxy))]
  122.         [DebuggerDisplay("{__DebugDisplay(),nq}")]
  123.         public class Triangle : GeometricFigure
  124.         {
  125.             [DebuggerBrowsable(DebuggerBrowsableState.Never)]
  126.             [CompilerGenerated]
  127.             [DebuggerNonUserCode]
  128.             internal readonly double _length;
  129.  
  130.             [CompilationMapping(SourceConstructFlags.Field, 2, 0)]
  131.             [CompilerGenerated]
  132.             [DebuggerNonUserCode]
  133.             public double length
  134.             {
  135.                 [CompilerGenerated]
  136.                 [DebuggerNonUserCode]
  137.                 get
  138.                 {
  139.                     return _length;
  140.                 }
  141.             }
  142.  
  143.             [CompilerGenerated]
  144.             [DebuggerNonUserCode]
  145.             internal Triangle(double _length)
  146.                 : base(2)
  147.             {
  148.                 this._length = _length;
  149.             }
  150.         }
  151.  
  152.         [Serializable]
  153.         [SpecialName]
  154.         [DebuggerTypeProxy(typeof(Ellipse@DebugTypeProxy))]
  155.         [DebuggerDisplay("{__DebugDisplay(),nq}")]
  156.         public class Ellipse : GeometricFigure
  157.         {
  158.             [DebuggerBrowsable(DebuggerBrowsableState.Never)]
  159.             [CompilerGenerated]
  160.             [DebuggerNonUserCode]
  161.             internal readonly double _focus;
  162.  
  163.             [CompilationMapping(SourceConstructFlags.Field, 3, 0)]
  164.             [CompilerGenerated]
  165.             [DebuggerNonUserCode]
  166.             public double focus
  167.             {
  168.                 [CompilerGenerated]
  169.                 [DebuggerNonUserCode]
  170.                 get
  171.                 {
  172.                     return _focus;
  173.                 }
  174.             }
  175.  
  176.             [CompilerGenerated]
  177.             [DebuggerNonUserCode]
  178.             internal Ellipse(double _focus)
  179.                 : base(3)
  180.             {
  181.                 this._focus = _focus;
  182.             }
  183.         }
  184.  
  185.         [SpecialName]
  186.         internal class Rectangle@DebugTypeProxy
  187.         {
  188.             [DebuggerBrowsable(DebuggerBrowsableState.Never)]
  189.             [CompilerGenerated]
  190.             [DebuggerNonUserCode]
  191.             internal Rectangle _obj;
  192.  
  193.             [CompilationMapping(SourceConstructFlags.Field, 0, 0)]
  194.             [CompilerGenerated]
  195.             [DebuggerNonUserCode]
  196.             public double width
  197.             {
  198.                 [CompilerGenerated]
  199.                 [DebuggerNonUserCode]
  200.                 get
  201.                 {
  202.                     return _obj._width;
  203.                 }
  204.             }
  205.  
  206.             [CompilationMapping(SourceConstructFlags.Field, 0, 1)]
  207.             [CompilerGenerated]
  208.             [DebuggerNonUserCode]
  209.             public double length
  210.             {
  211.                 [CompilerGenerated]
  212.                 [DebuggerNonUserCode]
  213.                 get
  214.                 {
  215.                     return _obj._length;
  216.                 }
  217.             }
  218.  
  219.             [CompilerGenerated]
  220.             [DebuggerNonUserCode]
  221.             public Rectangle@DebugTypeProxy(Rectangle obj)
  222.             {
  223.                 _obj = obj;
  224.             }
  225.         }
  226.  
  227.         [SpecialName]
  228.         internal class Circle@DebugTypeProxy
  229.         {
  230.             [DebuggerBrowsable(DebuggerBrowsableState.Never)]
  231.             [CompilerGenerated]
  232.             [DebuggerNonUserCode]
  233.             internal Circle _obj;
  234.  
  235.             [CompilationMapping(SourceConstructFlags.Field, 1, 0)]
  236.             [CompilerGenerated]
  237.             [DebuggerNonUserCode]
  238.             public double radius
  239.             {
  240.                 [CompilerGenerated]
  241.                 [DebuggerNonUserCode]
  242.                 get
  243.                 {
  244.                     return _obj._radius;
  245.                 }
  246.             }
  247.  
  248.             [CompilerGenerated]
  249.             [DebuggerNonUserCode]
  250.             public Circle@DebugTypeProxy(Circle obj)
  251.             {
  252.                 _obj = obj;
  253.             }
  254.         }
  255.  
  256.         [SpecialName]
  257.         internal class Triangle@DebugTypeProxy
  258.         {
  259.             [DebuggerBrowsable(DebuggerBrowsableState.Never)]
  260.             [CompilerGenerated]
  261.             [DebuggerNonUserCode]
  262.             internal Triangle _obj;
  263.  
  264.             [CompilationMapping(SourceConstructFlags.Field, 2, 0)]
  265.             [CompilerGenerated]
  266.             [DebuggerNonUserCode]
  267.             public double length
  268.             {
  269.                 [CompilerGenerated]
  270.                 [DebuggerNonUserCode]
  271.                 get
  272.                 {
  273.                     return _obj._length;
  274.                 }
  275.             }
  276.  
  277.             [CompilerGenerated]
  278.             [DebuggerNonUserCode]
  279.             public Triangle@DebugTypeProxy(Triangle obj)
  280.             {
  281.                 _obj = obj;
  282.             }
  283.         }
  284.  
  285.         [SpecialName]
  286.         internal class Ellipse@DebugTypeProxy
  287.         {
  288.             [DebuggerBrowsable(DebuggerBrowsableState.Never)]
  289.             [CompilerGenerated]
  290.             [DebuggerNonUserCode]
  291.             internal Ellipse _obj;
  292.  
  293.             [CompilationMapping(SourceConstructFlags.Field, 3, 0)]
  294.             [CompilerGenerated]
  295.             [DebuggerNonUserCode]
  296.             public double focus
  297.             {
  298.                 [CompilerGenerated]
  299.                 [DebuggerNonUserCode]
  300.                 get
  301.                 {
  302.                     return _obj._focus;
  303.                 }
  304.             }
  305.  
  306.             [CompilerGenerated]
  307.             [DebuggerNonUserCode]
  308.             public Ellipse@DebugTypeProxy(Ellipse obj)
  309.             {
  310.                 _obj = obj;
  311.             }
  312.         }
  313.  
  314.         [DebuggerBrowsable(DebuggerBrowsableState.Never)]
  315.         [CompilerGenerated]
  316.         [DebuggerNonUserCode]
  317.         internal readonly int _tag;
  318.  
  319.         [CompilerGenerated]
  320.         [DebuggerNonUserCode]
  321.         [DebuggerBrowsable(DebuggerBrowsableState.Never)]
  322.         public int Tag
  323.         {
  324.             [CompilerGenerated]
  325.             [DebuggerNonUserCode]
  326.             get
  327.             {
  328.                 return _tag;
  329.             }
  330.         }
  331.  
  332.         [CompilerGenerated]
  333.         [DebuggerNonUserCode]
  334.         [DebuggerBrowsable(DebuggerBrowsableState.Never)]
  335.         public bool IsRectangle
  336.         {
  337.             [CompilerGenerated]
  338.             [DebuggerNonUserCode]
  339.             get
  340.             {
  341.                 return Tag == 0;
  342.             }
  343.         }
  344.  
  345.         [CompilerGenerated]
  346.         [DebuggerNonUserCode]
  347.         [DebuggerBrowsable(DebuggerBrowsableState.Never)]
  348.         public bool IsCircle
  349.         {
  350.             [CompilerGenerated]
  351.             [DebuggerNonUserCode]
  352.             get
  353.             {
  354.                 return Tag == 1;
  355.             }
  356.         }
  357.  
  358.         [CompilerGenerated]
  359.         [DebuggerNonUserCode]
  360.         [DebuggerBrowsable(DebuggerBrowsableState.Never)]
  361.         public bool IsTriangle
  362.         {
  363.             [CompilerGenerated]
  364.             [DebuggerNonUserCode]
  365.             get
  366.             {
  367.                 return Tag == 2;
  368.             }
  369.         }
  370.  
  371.         [CompilerGenerated]
  372.         [DebuggerNonUserCode]
  373.         [DebuggerBrowsable(DebuggerBrowsableState.Never)]
  374.         public bool IsEllipse
  375.         {
  376.             [CompilerGenerated]
  377.             [DebuggerNonUserCode]
  378.             get
  379.             {
  380.                 return Tag == 3;
  381.             }
  382.         }
  383.  
  384.         [CompilerGenerated]
  385.         [DebuggerNonUserCode]
  386.         internal GeometricFigure(int _tag)
  387.         {
  388.             this._tag = _tag;
  389.         }
  390.  
  391.         [CompilationMapping(SourceConstructFlags.UnionCase, 0)]
  392.         public static GeometricFigure NewRectangle(double _width, double _length)
  393.         {
  394.             return new Rectangle(_width, _length);
  395.         }
  396.  
  397.         [CompilationMapping(SourceConstructFlags.UnionCase, 1)]
  398.         public static GeometricFigure NewCircle(double _radius)
  399.         {
  400.             return new Circle(_radius);
  401.         }
  402.  
  403.         [CompilationMapping(SourceConstructFlags.UnionCase, 2)]
  404.         public static GeometricFigure NewTriangle(double _length)
  405.         {
  406.             return new Triangle(_length);
  407.         }
  408.  
  409.         [CompilationMapping(SourceConstructFlags.UnionCase, 3)]
  410.         public static GeometricFigure NewEllipse(double _focus)
  411.         {
  412.             return new Ellipse(_focus);
  413.         }
  414.  
  415.         [SpecialName]
  416.         [CompilerGenerated]
  417.         [DebuggerNonUserCode]
  418.         internal object __DebugDisplay()
  419.         {
  420.             return ExtraTopLevelOperators.PrintFormatToString(new PrintfFormat<FSharpFunc<GeometricFigure, string>, Unit, string, string, string>("%+0.8A")).Invoke(this);
  421.         }
  422.  
  423.         [CompilerGenerated]
  424.         public override string ToString()
  425.         {
  426.             return ExtraTopLevelOperators.PrintFormatToString(new PrintfFormat<FSharpFunc<GeometricFigure, string>, Unit, string, string, GeometricFigure>("%+A")).Invoke(this);
  427.         }
  428.  
  429.         [CompilerGenerated]
  430.         public sealed override int CompareTo(GeometricFigure obj)
  431.         {
  432.             if (this != null)
  433.             {
  434.                 if (obj != null)
  435.                 {
  436.                     int tag = _tag;
  437.                     int tag2 = obj._tag;
  438.                     if (tag == tag2)
  439.                     {
  440.                         return CompareTo$cont@11(this, obj, null);
  441.                     }
  442.                     return tag - tag2;
  443.                 }
  444.                 return 1;
  445.             }
  446.             if (obj != null)
  447.             {
  448.                 return -1;
  449.             }
  450.             return 0;
  451.         }
  452.  
  453.         [CompilerGenerated]
  454.         public sealed override int CompareTo(object obj)
  455.         {
  456.             return CompareTo((GeometricFigure)obj);
  457.         }
  458.  
  459.         [CompilerGenerated]
  460.         public sealed override int CompareTo(object obj, IComparer comp)
  461.         {
  462.             GeometricFigure geometricFigure = (GeometricFigure)obj;
  463.             if (this != null)
  464.             {
  465.                 if ((GeometricFigure)obj != null)
  466.                 {
  467.                     int tag = _tag;
  468.                     int tag2 = geometricFigure._tag;
  469.                     if (tag == tag2)
  470.                     {
  471.                         return CompareTo$cont@11-1(comp, this, geometricFigure, null);
  472.                     }
  473.                     return tag - tag2;
  474.                 }
  475.                 return 1;
  476.             }
  477.             if ((GeometricFigure)obj != null)
  478.             {
  479.                 return -1;
  480.             }
  481.             return 0;
  482.         }
  483.  
  484.         [CompilerGenerated]
  485.         public sealed override int GetHashCode(IEqualityComparer comp)
  486.         {
  487.             if (this != null)
  488.             {
  489.                 int num = 0;
  490.                 switch (Tag)
  491.                 {
  492.                     default:
  493.                     {
  494.                         Rectangle rectangle = (Rectangle)this;
  495.                         num = 0;
  496.                         num = -1640531527 + (LanguagePrimitives.HashCompare.GenericHashWithComparerIntrinsic(comp, rectangle._length) + ((num << 6) + (num >> 2)));
  497.                         return -1640531527 + (LanguagePrimitives.HashCompare.GenericHashWithComparerIntrinsic(comp, rectangle._width) + ((num << 6) + (num >> 2)));
  498.                     }
  499.                     case 1:
  500.                     {
  501.                         Circle circle = (Circle)this;
  502.                         num = 1;
  503.                         return -1640531527 + (LanguagePrimitives.HashCompare.GenericHashWithComparerIntrinsic(comp, circle._radius) + ((num << 6) + (num >> 2)));
  504.                     }
  505.                     case 2:
  506.                     {
  507.                         Triangle triangle = (Triangle)this;
  508.                         num = 2;
  509.                         return -1640531527 + (LanguagePrimitives.HashCompare.GenericHashWithComparerIntrinsic(comp, triangle._length) + ((num << 6) + (num >> 2)));
  510.                     }
  511.                     case 3:
  512.                     {
  513.                         Ellipse ellipse = (Ellipse)this;
  514.                         num = 3;
  515.                         return -1640531527 + (LanguagePrimitives.HashCompare.GenericHashWithComparerIntrinsic(comp, ellipse._focus) + ((num << 6) + (num >> 2)));
  516.                     }
  517.                 }
  518.             }
  519.             return 0;
  520.         }
  521.  
  522.         [CompilerGenerated]
  523.         public sealed override int GetHashCode()
  524.         {
  525.             return GetHashCode(LanguagePrimitives.GenericEqualityComparer);
  526.         }
  527.  
  528.         [CompilerGenerated]
  529.         public sealed override bool Equals(object obj, IEqualityComparer comp)
  530.         {
  531.             if (this != null)
  532.             {
  533.                 GeometricFigure geometricFigure = obj as GeometricFigure;
  534.                 if (geometricFigure != null)
  535.                 {
  536.                     int tag = _tag;
  537.                     int tag2 = geometricFigure._tag;
  538.                     if (tag == tag2)
  539.                     {
  540.                         switch (Tag)
  541.                         {
  542.                             default:
  543.                             {
  544.                                 Rectangle rectangle = (Rectangle)this;
  545.                                 Rectangle rectangle2 = (Rectangle)geometricFigure;
  546.                                 if (rectangle._width == rectangle2._width)
  547.                                 {
  548.                                     return rectangle._length == rectangle2._length;
  549.                                 }
  550.                                 return false;
  551.                             }
  552.                             case 1:
  553.                             {
  554.                                 Circle circle = (Circle)this;
  555.                                 Circle circle2 = (Circle)geometricFigure;
  556.                                 return circle._radius == circle2._radius;
  557.                             }
  558.                             case 2:
  559.                             {
  560.                                 Triangle triangle = (Triangle)this;
  561.                                 Triangle triangle2 = (Triangle)geometricFigure;
  562.                                 return triangle._length == triangle2._length;
  563.                             }
  564.                             case 3:
  565.                             {
  566.                                 Ellipse ellipse = (Ellipse)this;
  567.                                 Ellipse ellipse2 = (Ellipse)geometricFigure;
  568.                                 return ellipse._focus == ellipse2._focus;
  569.                             }
  570.                         }
  571.                     }
  572.                     return false;
  573.                 }
  574.                 return false;
  575.             }
  576.             return obj == null;
  577.         }
  578.  
  579.         [CompilerGenerated]
  580.         public sealed override bool Equals(GeometricFigure obj)
  581.         {
  582.             if (this != null)
  583.             {
  584.                 if (obj != null)
  585.                 {
  586.                     int tag = _tag;
  587.                     int tag2 = obj._tag;
  588.                     if (tag == tag2)
  589.                     {
  590.                         return Equals$cont@11(this, obj, null);
  591.                     }
  592.                     return false;
  593.                 }
  594.                 return false;
  595.             }
  596.             return obj == null;
  597.         }
  598.  
  599.         [CompilerGenerated]
  600.         public sealed override bool Equals(object obj)
  601.         {
  602.             GeometricFigure geometricFigure = obj as GeometricFigure;
  603.             if (geometricFigure != null)
  604.             {
  605.                 return Equals(geometricFigure);
  606.             }
  607.             return false;
  608.         }
  609.     }
  610.  
  611.     [Serializable]
  612.     [CompilationMapping(SourceConstructFlags.ObjectType)]
  613.     public class Logger
  614.     {
  615.         public c Bind<b, c>(b x, FSharpFunc<b, c> f)
  616.         {
  617.             log(x);
  618.             return f.Invoke(x);
  619.         }
  620.  
  621.         public a Return<a>(a x)
  622.         {
  623.             return x;
  624.         }
  625.  
  626.         [CompilerGenerated]
  627.         internal void log<a>(a p)
  628.         {
  629.             PrintfFormat<FSharpFunc<a, Unit>, TextWriter, Unit, Unit> format = new PrintfFormat<FSharpFunc<a, Unit>, TextWriter, Unit, Unit, a>("logged %A");
  630.             PrintfModule.PrintFormatLineToTextWriter(Console.Out, format).Invoke(p);
  631.         }
  632.     }
  633.  
  634.     [CompilationMapping(SourceConstructFlags.Value)]
  635.     public static GeometricFigure rectangle
  636.     {
  637.         get
  638.         {
  639.             return $MyProgram.rectangle@18;
  640.         }
  641.     }
  642.  
  643.     [CompilationMapping(SourceConstructFlags.Value)]
  644.     public static GeometricFigure circle
  645.     {
  646.         get
  647.         {
  648.             return $MyProgram.circle@19;
  649.         }
  650.     }
  651.  
  652.     [CompilationMapping(SourceConstructFlags.Value)]
  653.     public static GeometricFigure triangle
  654.     {
  655.         get
  656.         {
  657.             return $MyProgram.triangle@20;
  658.         }
  659.     }
  660.  
  661.     [CompilationMapping(SourceConstructFlags.Value)]
  662.     public static GeometricFigure ellipse
  663.     {
  664.         get
  665.         {
  666.             return $MyProgram.ellipse@21;
  667.         }
  668.     }
  669.  
  670.     [CompilationMapping(SourceConstructFlags.Value)]
  671.     public static Unit result2
  672.     {
  673.         get
  674.         {
  675.             return $MyProgram.result2@31;
  676.         }
  677.     }
  678.  
  679.     [CompilationMapping(SourceConstructFlags.Value)]
  680.     public static Logger logger
  681.     {
  682.         get
  683.         {
  684.             return $MyProgram.logger@41;
  685.         }
  686.     }
  687.  
  688.     [CompilationMapping(SourceConstructFlags.Value)]
  689.     public static int loggedWork
  690.     {
  691.         get
  692.         {
  693.             return $MyProgram.loggedWork@42;
  694.         }
  695.     }
  696.  
  697.     [SpecialName]
  698.     [CompilationArgumentCounts(new int[] { 1, 1 })]
  699.     public static b op_PipeRight<a, b>(a x, FSharpFunc<a, b> f)
  700.     {
  701.         return f.Invoke(x);
  702.     }
  703.  
  704.     public static int func(int x)
  705.     {
  706.         return x * x + 2 * x + 4 - 121 - x * x * x;
  707.     }
  708.  
  709.     public static string toString(int x)
  710.     {
  711.         return string.Concat(x.ToString(), "DimaEvtyukhov");
  712.     }
  713.  
  714.     public static string reverseString(string x)
  715.     {
  716.         return string.Concat(new string(ArrayModule.Reverse(x.ToCharArray())), "M32011");
  717.     }
  718.  
  719.     public static string result1(int x)
  720.     {
  721.         string text = string.Concat(func(x).ToString(), "DimaEvtyukhov");
  722.         return string.Concat(new string(ArrayModule.Reverse(text.ToCharArray())), "M32011");
  723.     }
  724.  
  725.     [CompilerGenerated]
  726.     internal static int CompareTo$cont@11(GeometricFigure @this, GeometricFigure obj, Unit unitVar)
  727.     {
  728.         switch (@this.Tag)
  729.         {
  730.             default:
  731.             {
  732.                 GeometricFigure.Rectangle rectangle = (GeometricFigure.Rectangle)@this;
  733.                 GeometricFigure.Rectangle rectangle2 = (GeometricFigure.Rectangle)obj;
  734.                 IComparer genericComparer = LanguagePrimitives.GenericComparer;
  735.                 double focus = rectangle._width;
  736.                 double focus2 = rectangle2._width;
  737.                 int num = ((focus < focus2) ? (-1) : ((focus > focus2) ? 1 : ((focus != focus2) ? LanguagePrimitives.HashCompare.GenericComparisonWithComparerIntrinsic(genericComparer, focus, focus2) : 0)));
  738.                 if (num < 0)
  739.                 {
  740.                     return num;
  741.                 }
  742.                 if (num > 0)
  743.                 {
  744.                     return num;
  745.                 }
  746.                 genericComparer = LanguagePrimitives.GenericComparer;
  747.                 focus = rectangle._length;
  748.                 focus2 = rectangle2._length;
  749.                 if (focus < focus2)
  750.                 {
  751.                     return -1;
  752.                 }
  753.                 if (focus > focus2)
  754.                 {
  755.                     return 1;
  756.                 }
  757.                 if (focus == focus2)
  758.                 {
  759.                     return 0;
  760.                 }
  761.                 return LanguagePrimitives.HashCompare.GenericComparisonWithComparerIntrinsic(genericComparer, focus, focus2);
  762.             }
  763.             case 1:
  764.             {
  765.                 GeometricFigure.Circle circle = (GeometricFigure.Circle)@this;
  766.                 GeometricFigure.Circle circle2 = (GeometricFigure.Circle)obj;
  767.                 IComparer genericComparer = LanguagePrimitives.GenericComparer;
  768.                 double focus = circle._radius;
  769.                 double focus2 = circle2._radius;
  770.                 if (focus < focus2)
  771.                 {
  772.                     return -1;
  773.                 }
  774.                 if (focus > focus2)
  775.                 {
  776.                     return 1;
  777.                 }
  778.                 if (focus == focus2)
  779.                 {
  780.                     return 0;
  781.                 }
  782.                 return LanguagePrimitives.HashCompare.GenericComparisonWithComparerIntrinsic(genericComparer, focus, focus2);
  783.             }
  784.             case 2:
  785.             {
  786.                 GeometricFigure.Triangle triangle = (GeometricFigure.Triangle)@this;
  787.                 GeometricFigure.Triangle triangle2 = (GeometricFigure.Triangle)obj;
  788.                 IComparer genericComparer = LanguagePrimitives.GenericComparer;
  789.                 double focus = triangle._length;
  790.                 double focus2 = triangle2._length;
  791.                 if (focus < focus2)
  792.                 {
  793.                     return -1;
  794.                 }
  795.                 if (focus > focus2)
  796.                 {
  797.                     return 1;
  798.                 }
  799.                 if (focus == focus2)
  800.                 {
  801.                     return 0;
  802.                 }
  803.                 return LanguagePrimitives.HashCompare.GenericComparisonWithComparerIntrinsic(genericComparer, focus, focus2);
  804.             }
  805.             case 3:
  806.             {
  807.                 GeometricFigure.Ellipse ellipse = (GeometricFigure.Ellipse)@this;
  808.                 GeometricFigure.Ellipse ellipse2 = (GeometricFigure.Ellipse)obj;
  809.                 IComparer genericComparer = LanguagePrimitives.GenericComparer;
  810.                 double focus = ellipse._focus;
  811.                 double focus2 = ellipse2._focus;
  812.                 if (focus < focus2)
  813.                 {
  814.                     return -1;
  815.                 }
  816.                 if (focus > focus2)
  817.                 {
  818.                     return 1;
  819.                 }
  820.                 if (focus == focus2)
  821.                 {
  822.                     return 0;
  823.                 }
  824.                 return LanguagePrimitives.HashCompare.GenericComparisonWithComparerIntrinsic(genericComparer, focus, focus2);
  825.             }
  826.         }
  827.     }
  828.  
  829.     [CompilerGenerated]
  830.     internal static int CompareTo$cont@11-1(IComparer comp, GeometricFigure @this, GeometricFigure objTemp, Unit unitVar)
  831.     {
  832.         switch (@this.Tag)
  833.         {
  834.             default:
  835.             {
  836.                 GeometricFigure.Rectangle rectangle = (GeometricFigure.Rectangle)@this;
  837.                 GeometricFigure.Rectangle rectangle2 = (GeometricFigure.Rectangle)objTemp;
  838.                 double focus = rectangle._width;
  839.                 double focus2 = rectangle2._width;
  840.                 int num = ((focus < focus2) ? (-1) : ((focus > focus2) ? 1 : ((focus != focus2) ? LanguagePrimitives.HashCompare.GenericComparisonWithComparerIntrinsic(comp, focus, focus2) : 0)));
  841.                 if (num < 0)
  842.                 {
  843.                     return num;
  844.                 }
  845.                 if (num > 0)
  846.                 {
  847.                     return num;
  848.                 }
  849.                 focus = rectangle._length;
  850.                 focus2 = rectangle2._length;
  851.                 if (focus < focus2)
  852.                 {
  853.                     return -1;
  854.                 }
  855.                 if (focus > focus2)
  856.                 {
  857.                     return 1;
  858.                 }
  859.                 if (focus == focus2)
  860.                 {
  861.                     return 0;
  862.                 }
  863.                 return LanguagePrimitives.HashCompare.GenericComparisonWithComparerIntrinsic(comp, focus, focus2);
  864.             }
  865.             case 1:
  866.             {
  867.                 GeometricFigure.Circle circle = (GeometricFigure.Circle)@this;
  868.                 GeometricFigure.Circle circle2 = (GeometricFigure.Circle)objTemp;
  869.                 double focus = circle._radius;
  870.                 double focus2 = circle2._radius;
  871.                 if (focus < focus2)
  872.                 {
  873.                     return -1;
  874.                 }
  875.                 if (focus > focus2)
  876.                 {
  877.                     return 1;
  878.                 }
  879.                 if (focus == focus2)
  880.                 {
  881.                     return 0;
  882.                 }
  883.                 return LanguagePrimitives.HashCompare.GenericComparisonWithComparerIntrinsic(comp, focus, focus2);
  884.             }
  885.             case 2:
  886.             {
  887.                 GeometricFigure.Triangle triangle = (GeometricFigure.Triangle)@this;
  888.                 GeometricFigure.Triangle triangle2 = (GeometricFigure.Triangle)objTemp;
  889.                 double focus = triangle._length;
  890.                 double focus2 = triangle2._length;
  891.                 if (focus < focus2)
  892.                 {
  893.                     return -1;
  894.                 }
  895.                 if (focus > focus2)
  896.                 {
  897.                     return 1;
  898.                 }
  899.                 if (focus == focus2)
  900.                 {
  901.                     return 0;
  902.                 }
  903.                 return LanguagePrimitives.HashCompare.GenericComparisonWithComparerIntrinsic(comp, focus, focus2);
  904.             }
  905.             case 3:
  906.             {
  907.                 GeometricFigure.Ellipse ellipse = (GeometricFigure.Ellipse)@this;
  908.                 GeometricFigure.Ellipse ellipse2 = (GeometricFigure.Ellipse)objTemp;
  909.                 double focus = ellipse._focus;
  910.                 double focus2 = ellipse2._focus;
  911.                 if (focus < focus2)
  912.                 {
  913.                     return -1;
  914.                 }
  915.                 if (focus > focus2)
  916.                 {
  917.                     return 1;
  918.                 }
  919.                 if (focus == focus2)
  920.                 {
  921.                     return 0;
  922.                 }
  923.                 return LanguagePrimitives.HashCompare.GenericComparisonWithComparerIntrinsic(comp, focus, focus2);
  924.             }
  925.         }
  926.     }
  927.  
  928.     [CompilerGenerated]
  929.     internal static bool Equals$cont@11(GeometricFigure @this, GeometricFigure obj, Unit unitVar)
  930.     {
  931.         switch (@this.Tag)
  932.         {
  933.             default:
  934.             {
  935.                 GeometricFigure.Rectangle rectangle = (GeometricFigure.Rectangle)@this;
  936.                 GeometricFigure.Rectangle rectangle2 = (GeometricFigure.Rectangle)obj;
  937.                 double focus = rectangle._width;
  938.                 double focus2 = rectangle2._width;
  939.                 if (focus == focus2 || (focus != focus && focus2 != focus2))
  940.                 {
  941.                     focus = rectangle._length;
  942.                     focus2 = rectangle2._length;
  943.                     if (focus == focus2)
  944.                     {
  945.                         return true;
  946.                     }
  947.                     if (focus != focus)
  948.                     {
  949.                         return focus2 != focus2;
  950.                     }
  951.                     return false;
  952.                 }
  953.                 return false;
  954.             }
  955.             case 1:
  956.             {
  957.                 GeometricFigure.Circle circle = (GeometricFigure.Circle)@this;
  958.                 GeometricFigure.Circle circle2 = (GeometricFigure.Circle)obj;
  959.                 double focus = circle._radius;
  960.                 double focus2 = circle2._radius;
  961.                 if (focus == focus2)
  962.                 {
  963.                     return true;
  964.                 }
  965.                 if (focus != focus)
  966.                 {
  967.                     return focus2 != focus2;
  968.                 }
  969.                 return false;
  970.             }
  971.             case 2:
  972.             {
  973.                 GeometricFigure.Triangle triangle = (GeometricFigure.Triangle)@this;
  974.                 GeometricFigure.Triangle triangle2 = (GeometricFigure.Triangle)obj;
  975.                 double focus = triangle._length;
  976.                 double focus2 = triangle2._length;
  977.                 if (focus == focus2)
  978.                 {
  979.                     return true;
  980.                 }
  981.                 if (focus != focus)
  982.                 {
  983.                     return focus2 != focus2;
  984.                 }
  985.                 return false;
  986.             }
  987.             case 3:
  988.             {
  989.                 GeometricFigure.Ellipse ellipse = (GeometricFigure.Ellipse)@this;
  990.                 GeometricFigure.Ellipse ellipse2 = (GeometricFigure.Ellipse)obj;
  991.                 double focus = ellipse._focus;
  992.                 double focus2 = ellipse2._focus;
  993.                 if (focus == focus2)
  994.                 {
  995.                     return true;
  996.                 }
  997.                 if (focus != focus)
  998.                 {
  999.                     return focus2 != focus2;
  1000.                 }
  1001.                 return false;
  1002.             }
  1003.         }
  1004.     }
  1005.  
  1006.     public static void getFigureParameter(GeometricFigure figure)
  1007.     {
  1008.         switch (figure.Tag)
  1009.         {
  1010.             default:
  1011.             {
  1012.                 GeometricFigure.Rectangle rectangle = (GeometricFigure.Rectangle)figure;
  1013.                 double focus = rectangle._length;
  1014.                 PrintfFormat<FSharpFunc<double, Unit>, TextWriter, Unit, Unit> format = new PrintfFormat<FSharpFunc<double, Unit>, TextWriter, Unit, Unit, double>("%A");
  1015.                 PrintfModule.PrintFormatLineToTextWriter(Console.Out, format).Invoke(focus);
  1016.                 break;
  1017.             }
  1018.             case 1:
  1019.             {
  1020.                 GeometricFigure.Circle circle = (GeometricFigure.Circle)figure;
  1021.                 double focus = circle._radius;
  1022.                 PrintfFormat<FSharpFunc<double, Unit>, TextWriter, Unit, Unit> format = new PrintfFormat<FSharpFunc<double, Unit>, TextWriter, Unit, Unit, double>("%A");
  1023.                 PrintfModule.PrintFormatLineToTextWriter(Console.Out, format).Invoke(focus);
  1024.                 break;
  1025.             }
  1026.             case 2:
  1027.             {
  1028.                 GeometricFigure.Triangle triangle = (GeometricFigure.Triangle)figure;
  1029.                 double focus = triangle._length;
  1030.                 PrintfFormat<FSharpFunc<double, Unit>, TextWriter, Unit, Unit> format = new PrintfFormat<FSharpFunc<double, Unit>, TextWriter, Unit, Unit, double>("%A");
  1031.                 PrintfModule.PrintFormatLineToTextWriter(Console.Out, format).Invoke(focus);
  1032.                 break;
  1033.             }
  1034.             case 3:
  1035.             {
  1036.                 GeometricFigure.Ellipse ellipse = (GeometricFigure.Ellipse)figure;
  1037.                 double focus = ellipse._focus;
  1038.                 PrintfFormat<FSharpFunc<double, Unit>, TextWriter, Unit, Unit> format = new PrintfFormat<FSharpFunc<double, Unit>, TextWriter, Unit, Unit, double>("%A");
  1039.                 PrintfModule.PrintFormatLineToTextWriter(Console.Out, format).Invoke(focus);
  1040.                 break;
  1041.             }
  1042.         }
  1043.     }
  1044.  
  1045.     [CompilerGenerated]
  1046.     internal static int f@36(int x)
  1047.     {
  1048.         logger.log(5);
  1049.         return f@36-1(x, 5);
  1050.     }
  1051.  
  1052.     [CompilerGenerated]
  1053.     internal static int f@36-1(int x, int y)
  1054.     {
  1055.         int num = x + y;
  1056.         logger.log(num);
  1057.         return num;
  1058.     }
  1059. }
  1060. namespace <StartupCode$_>
  1061. {
  1062.     internal static class $MyProgram
  1063.     {
  1064.         [DebuggerBrowsable(DebuggerBrowsableState.Never)]
  1065.         internal static readonly MyProgram.GeometricFigure rectangle@18;
  1066.  
  1067.         [DebuggerBrowsable(DebuggerBrowsableState.Never)]
  1068.         internal static readonly MyProgram.GeometricFigure circle@19;
  1069.  
  1070.         [DebuggerBrowsable(DebuggerBrowsableState.Never)]
  1071.         internal static readonly MyProgram.GeometricFigure triangle@20;
  1072.  
  1073.         [DebuggerBrowsable(DebuggerBrowsableState.Never)]
  1074.         internal static readonly MyProgram.GeometricFigure ellipse@21;
  1075.  
  1076.         [DebuggerBrowsable(DebuggerBrowsableState.Never)]
  1077.         internal static readonly Unit result2@31;
  1078.  
  1079.         [DebuggerBrowsable(DebuggerBrowsableState.Never)]
  1080.         internal static readonly MyProgram.Logger logger@41;
  1081.  
  1082.         [DebuggerBrowsable(DebuggerBrowsableState.Never)]
  1083.         internal static readonly int loggedWork@42;
  1084.  
  1085.         [DebuggerBrowsable(DebuggerBrowsableState.Never)]
  1086.         [CompilerGenerated]
  1087.         [DebuggerNonUserCode]
  1088.         internal static int init@;
  1089.  
  1090.         static $MyProgram()
  1091.         {
  1092.             rectangle@18 = MyProgram.GeometricFigure.NewRectangle(100.0, 100.0);
  1093.             circle@19 = MyProgram.GeometricFigure.NewCircle(10.0);
  1094.             triangle@20 = MyProgram.GeometricFigure.NewTriangle(11.0);
  1095.             ellipse@21 = MyProgram.GeometricFigure.NewEllipse(228.0);
  1096.             MyProgram.getFigureParameter(MyProgram.rectangle);
  1097.             result2@31 = null;
  1098.             logger@41 = new MyProgram.Logger();
  1099.             MyProgram.logger.log(1);
  1100.             loggedWork@42 = MyProgram.f@36(1);
  1101.         }
  1102.     }
  1103. }
  1104.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement