4 * Application program used by the debugger tests.
7 using System.Runtime.CompilerServices;
8 using System.Reflection;
9 using System.Reflection.Emit;
10 using System.Diagnostics;
11 using System.Threading;
12 using System.Collections.Generic;
15 public class TestsBase
17 #pragma warning disable 0414
18 #pragma warning disable 0169
19 public int base_field_i;
20 public string base_field_s;
21 static int base_static_i = 57;
22 static string base_static_s = "C";
23 #pragma warning restore 0414
24 #pragma warning restore 0169
32 public sealed class Tests3 {
33 public static void M1 () {
47 [DebuggerDisplay ("Tests", Name="FOO", Target=typeof (int))]
48 [DebuggerTypeProxy (typeof (Tests))]
50 [DebuggerBrowsableAttribute (DebuggerBrowsableState.Collapsed)]
52 public static int static_field_j;
54 [DebuggerBrowsableAttribute (DebuggerBrowsableState.Collapsed)]
55 public int AProperty {
61 public void invoke () {
65 public struct AStruct {
71 [MethodImplAttribute (MethodImplOptions.NoInlining)]
72 public int foo (int val) {
76 [MethodImplAttribute (MethodImplOptions.NoInlining)]
77 public static int static_foo (int val) {
81 [MethodImplAttribute (MethodImplOptions.NoInlining)]
82 public int invoke_return_int () {
86 [MethodImplAttribute (MethodImplOptions.NoInlining)]
87 public static int invoke_static () {
91 [MethodImplAttribute (MethodImplOptions.NoInlining)]
92 public IntPtr invoke_return_intptr () {
97 public class GClass<T> {
99 public static T static_field;
101 [MethodImplAttribute (MethodImplOptions.NoInlining)]
105 [MethodImplAttribute (MethodImplOptions.NoInlining)]
106 public void bp<T2> () {
110 public struct GStruct<T> {
115 [MethodImplAttribute (MethodImplOptions.NoInlining)]
116 public int invoke_return_int () {
133 class TestIfaces : ITest
141 TestIfaces<int> Baz () {
146 class TestIfaces<T> : ITest<T>
148 void ITest<T>.Foo () {
151 void ITest<T>.Bar () {
155 public class Tests : TestsBase
157 #pragma warning disable 0414
161 bool field_bool1, field_bool2;
174 static int static_i = 55;
175 static string static_s = "A";
176 public const int literal_i = 56;
177 public const string literal_s = "B";
179 public AStruct field_struct;
180 public object field_boxed_struct;
181 public GStruct<int> generic_field_struct;
183 public static int tls_i;
184 public static bool is_attached = Debugger.IsAttached;
186 #pragma warning restore 0414
188 public class NestedClass {
191 public int IntProperty {
200 public int ReadOnlyProperty {
206 public int this [int index] {
212 public static int Main (String[] args) {
215 if (args.Length > 0 && args [0] == "suspend-test")
216 /* This contains an infinite loop, so execute it conditionally */
218 if (args.Length >0 && args [0] == "unhandled-exception") {
219 unhandled_exception ();
222 if (args.Length >0 && args [0] == "unhandled-exception-user") {
223 unhandled_exception_user ();
244 if (args.Length > 0 && args [0] == "domain-test")
245 /* This takes a lot of time, so execute it conditionally */
247 if (args.Length > 0 && args [0] == "ref-emit-test")
249 if (args.Length > 0 && args [0] == "frames-in-native")
251 if (args.Length >0 && args [0] == "invoke-single-threaded")
252 new Tests ().invoke_single_threaded ();
256 public static void breakpoints () {
257 /* Call these early so it is JITted by the time a breakpoint is placed on it */
269 bp6<string> (new GClass <int> ());
274 [MethodImplAttribute (MethodImplOptions.NoInlining)]
275 public static void bp1 () {
278 [MethodImplAttribute (MethodImplOptions.NoInlining)]
279 public static void bp2 () {
282 [MethodImplAttribute (MethodImplOptions.NoInlining)]
283 public static void bp3 () {
286 [MethodImplAttribute (MethodImplOptions.NoInlining)]
287 public static void bp4 () {
290 [MethodImplAttribute (MethodImplOptions.NoInlining)]
291 public static void bp5 () {
294 [MethodImplAttribute (MethodImplOptions.NoInlining)]
295 public static void bp6<T> (GClass<int> gc) {
299 [MethodImplAttribute (MethodImplOptions.NoInlining)]
300 public static void bp7<T> () {
303 [MethodImplAttribute (MethodImplOptions.NoInlining)]
304 public static void single_stepping () {
311 ss5 (new int [] { 1, 2, 3 }, new Func<int, bool> (is_even));
317 ss_regress_654694 ();
320 [MethodImplAttribute (MethodImplOptions.NoInlining)]
321 public static void ss1 () {
324 [MethodImplAttribute (MethodImplOptions.NoInlining)]
325 public static void ss2 () {
328 [MethodImplAttribute (MethodImplOptions.NoInlining)]
329 public static int ss3 () {
332 for (int i = 0; i < 10; ++i)
338 [MethodImplAttribute (MethodImplOptions.NoInlining)]
339 public static void ss3_2 () {
343 [MethodImplAttribute (MethodImplOptions.NoInlining)]
344 public static void ss3_2_2 () {
347 [MethodImplAttribute (MethodImplOptions.NoInlining)]
348 public static int ss4 () {
354 [MethodImplAttribute (MethodImplOptions.NoInlining)]
355 public static void ss5 (int[] arr, Func<int, bool> selector) {
356 // Call into linq which calls back into this assembly
357 arr.Count (selector);
360 [MethodImplAttribute (MethodImplOptions.NoInlining)]
361 public static void ss6 (bool b) {
364 throw new Exception ();
368 [MethodImplAttribute (MethodImplOptions.NoInlining)]
369 public static void ss6_2 () {
372 [MethodImplAttribute (MethodImplOptions.NoInlining)]
373 public static void ss7 () {
382 [MethodImplAttribute (MethodImplOptions.NoInlining)]
383 public static void ss7_2 () {
386 [MethodImplAttribute (MethodImplOptions.NoInlining)]
387 public static void ss7_3 () {
388 throw new Exception ();
391 [MethodImplAttribute (MethodImplOptions.NoInlining)]
392 public static bool is_even (int i) {
398 Console.WriteLine ("HIT!");
404 [MethodImplAttribute (MethodImplOptions.NoInlining)]
405 public static void arguments () {
406 arg1 (SByte.MaxValue - 5, Byte.MaxValue - 5, true, Int16.MaxValue - 5, UInt16.MaxValue - 5, 'F', Int32.MaxValue - 5, UInt32.MaxValue - 5, Int64.MaxValue - 5, UInt64.MaxValue - 5, 1.2345f, 6.78910, new IntPtr (Int32.MaxValue - 5), new UIntPtr (UInt32.MaxValue - 5));
408 arg2 ("FOO", null, "BLA", ref i, new GClass <int> { field = 42 }, new object ());
409 Tests t = new Tests () { field_i = 42, field_s = "S" };
413 [MethodImplAttribute (MethodImplOptions.NoInlining)]
414 public static int arg1 (sbyte sb, byte b, bool bl, short s, ushort us, char c, int i, uint ui, long l, ulong ul, float f, double d, IntPtr ip, UIntPtr uip) {
415 return (int)(sb + b + (bl ? 0 : 1) + s + us + (int)c + i + ui + l + (long)ul + f + d + (int)ip + (int)uip);
418 [MethodImplAttribute (MethodImplOptions.NoInlining)]
419 public static string arg2 (string s, string s3, object o, ref int i, GClass <int> gc, object o2) {
420 return s + (s3 != null ? "" : "") + o + i + gc.field + o2;
423 [MethodImplAttribute (MethodImplOptions.NoInlining)]
424 public object arg3 (string s) {
425 return s + s + s + s + this;
428 [MethodImplAttribute (MethodImplOptions.NoInlining)]
429 public static void objects () {
430 Tests t = new Tests () { field_i = 42, field_bool1 = true, field_bool2 = false, field_char = 'A', field_byte = 129, field_sbyte = -33, field_short = Int16.MaxValue - 5, field_ushort = UInt16.MaxValue - 5, field_long = Int64.MaxValue - 5, field_ulong = UInt64.MaxValue - 5, field_float = 3.14f, field_double = 3.14f, field_s = "S", base_field_i = 43, base_field_s = "T", field_enum = AnEnum.B, field_class = null, field_intptr = new IntPtr (Int32.MaxValue - 5), field_nullable = null };
431 t.o1 (new Tests2 () { field_j = 43 }, new GClass <int> { field = 42 }, new GClass <string> { field = "FOO" });
432 o2 (new string [] { "BAR", "BAZ" }, new int[] { 42, 43 }, new int [,] { { 1, 2 }, { 3, 4 }}, (int[,])Array.CreateInstance (typeof (int), new int [] { 2, 2}, new int [] { 1, 3}), new int[] { 0 });
435 [MethodImplAttribute (MethodImplOptions.NoInlining)]
436 public object o1 (Tests2 t, GClass <int> gc1, GClass <string> gc2) {
437 if (t == null || gc1 == null || gc2 == null)
443 [MethodImplAttribute (MethodImplOptions.NoInlining)]
444 public static string o2 (string[] s2, int[] s3, int[,] s4, int[,] s5, IList<int> s6) {
445 return s2 [0] + s3 [0] + s4 [0, 0] + s6 [0];
448 [MethodImplAttribute (MethodImplOptions.NoInlining)]
449 public static void objrefs () {
450 Tests t = new Tests () {};
458 [MethodImplAttribute (MethodImplOptions.NoInlining)]
459 public static void set_child (Tests t) {
460 t.child = new Tests ();
463 [MethodImplAttribute (MethodImplOptions.NoInlining)]
464 public void objrefs1 () {
467 [MethodImplAttribute (MethodImplOptions.NoInlining)]
468 public static void objrefs2 () {
471 public static void vtypes () {
472 Tests t = new Tests () { field_struct = new AStruct () { i = 42, s = "S", k = 43 }, generic_field_struct = new GStruct<int> () { i = 42 }, field_boxed_struct = new AStruct () { i = 42 }};
473 AStruct s = new AStruct { i = 44, s = "T", k = 45 };
474 AStruct[] arr = new AStruct[] {
475 new AStruct () { i = 1, s = "S1" },
476 new AStruct () { i = 2, s = "S2" } };
482 [MethodImplAttribute (MethodImplOptions.NoInlining)]
483 public object vtypes1 (AStruct s, AStruct[] arr) {
490 [MethodImplAttribute (MethodImplOptions.NoInlining)]
491 public static void vtypes2 (AStruct s) {
495 [MethodImplAttribute (MethodImplOptions.NoInlining)]
496 public static void vtypes3 (AStruct s) {
497 AStruct.static_foo (5);
500 [MethodImplAttribute (MethodImplOptions.NoInlining)]
501 public static void locals () {
504 locals2<string> (null, 5, "ABC", ref s);
509 [MethodImplAttribute (MethodImplOptions.NoInlining)]
510 public static void locals1 (string[] args) {
513 for (int j = 0; j < 10; ++j) {
518 [MethodImplAttribute (MethodImplOptions.NoInlining)]
519 [StateMachine (typeof (int))]
520 public static void locals2<T> (string[] args, int arg, T t, ref string rs) {
524 for (int j = 0; j < 10; ++j) {
533 [MethodImplAttribute (MethodImplOptions.NoInlining)]
534 public static void locals3 () {
554 [MethodImplAttribute (MethodImplOptions.NoInlining)]
555 public static void locals4 () {
558 [MethodImplAttribute (MethodImplOptions.NoInlining)]
559 public static void locals5 () {
562 [MethodImplAttribute (MethodImplOptions.NoInlining)]
563 public static void locals6 () {
566 for (i = 0; i < 10; ++i)
569 for (i = 0; i < 10; ++i)
579 [MethodImplAttribute (MethodImplOptions.NoInlining)]
580 public static void locals6_1 () {
583 [MethodImplAttribute (MethodImplOptions.NoInlining)]
584 public static void locals6_2 (int arg) {
587 [MethodImplAttribute (MethodImplOptions.NoInlining)]
588 public static void locals6_3 () {
589 // Clobber all registers
590 int sum = 0, i, j, k, l, m;
591 for (i = 0; i < 100; ++i)
593 for (j = 0; j < 100; ++j)
595 for (k = 0; k < 100; ++k)
597 for (l = 0; l < 100; ++l)
599 for (m = 0; m < 100; ++m)
603 [MethodImplAttribute (MethodImplOptions.NoInlining)]
604 public static void locals6_4 (int arg) {
607 [MethodImplAttribute (MethodImplOptions.NoInlining)]
608 public static void locals6_5 () {
611 [MethodImplAttribute (MethodImplOptions.NoInlining)]
612 public static void locals6_6 (int arg) {
615 [MethodImplAttribute (MethodImplOptions.NoInlining)]
616 public static void line_numbers () {
620 [MethodImplAttribute (MethodImplOptions.NoInlining)]
621 public static void suspend () {
629 [MethodImplAttribute (MethodImplOptions.NoInlining)]
630 public static void type_info () {
631 Tests t = new Tests () { field_i = 42, field_s = "S", base_field_i = 43, base_field_s = "T", field_enum = AnEnum.B };
632 t.ti1 (new Tests2 () { field_j = 43 }, new GClass <int> { field = 42 }, new GClass <string> { field = "FOO" });
635 AStruct s = new AStruct () { i = 42, s = "S", k = 43 };
637 ti2 (new string [] { "BAR", "BAZ" }, new int[] { 42, 43 }, new int [,] { { 1, 2 }, { 3, 4 }}, ref val, (int*)IntPtr.Zero, 5, s, new Tests (), new Tests2 (), new GClass <int> (), AnEnum.B);
641 [MethodImplAttribute (MethodImplOptions.NoInlining)]
642 public object ti1 (Tests2 t, GClass <int> gc1, GClass <string> gc2) {
643 if (t == null || gc1 == null || gc2 == null)
649 [MethodImplAttribute (MethodImplOptions.NoInlining)]
650 public static unsafe string ti2 (string[] s2, int[] s3, int[,] s4, ref int ri, int* ptr, int i, AStruct s, Tests t, Tests2 t2, GClass<int> g, AnEnum ae) {
651 return s2 [0] + s3 [0] + s4 [0, 0];
654 [MethodImplAttribute (MethodImplOptions.NoInlining)]
655 public static void assembly_load () {
659 [MethodImplAttribute (MethodImplOptions.NoInlining)]
660 public static void assembly_load_2 () {
661 // This will load System.dll while holding the loader lock
665 [MethodImplAttribute (MethodImplOptions.NoInlining)]
666 public static void invoke () {
667 new Tests ().invoke1 (new Tests2 (), new AStruct () { i = 42, j = (IntPtr)43 }, new GStruct<int> { j = 42 });
668 new Tests ().invoke_ex ();
671 [MethodImplAttribute (MethodImplOptions.NoInlining)]
672 public void invoke1 (Tests2 t, AStruct s, GStruct<int> g) {
676 [MethodImplAttribute (MethodImplOptions.NoInlining)]
677 public void invoke2 () {
680 [MethodImplAttribute (MethodImplOptions.NoInlining)]
681 public void invoke_ex () {
685 [MethodImplAttribute (MethodImplOptions.NoInlining)]
686 public void invoke_ex_inner () {
688 throw new Exception ();
695 [MethodImplAttribute (MethodImplOptions.NoInlining)]
696 public void invoke_single_threaded () {
697 // Spawn a thread incrementing a counter
698 bool finished = false;
700 new Thread (delegate () {
707 invoke_single_threaded_2 ();
712 [MethodImplAttribute (MethodImplOptions.NoInlining)]
713 public void invoke_single_threaded_2 () {
716 public void invoke_return_void () {
719 public string invoke_return_ref () {
723 public object invoke_return_null () {
727 public int invoke_return_primitive () {
731 public int? invoke_return_nullable () {
735 public int? invoke_return_nullable_null () {
739 public void invoke_type_load () {
746 public long invoke_pass_primitive (byte ub, sbyte sb, short ss, ushort us, int i, uint ui, long l, ulong ul, char c, bool b, float f, double d) {
747 return ub + sb + ss + us + i + ui + l + (long)ul + (int)c + (b ? 1 : 0) + (int)f + (int)d;
750 public int invoke_pass_primitive2 (bool b) {
754 public string invoke_pass_ref (string s) {
758 public static string invoke_static_pass_ref (string s) {
762 public static void invoke_static_return_void () {
765 public static void invoke_throws () {
766 throw new Exception ();
769 [MethodImplAttribute (MethodImplOptions.NoInlining)]
770 public static void exceptions () {
772 throw new OverflowException ();
773 } catch (Exception) {
776 throw new OverflowException ();
777 } catch (Exception) {
780 throw new ArgumentException ();
781 } catch (Exception) {
784 throw new OverflowException ();
785 } catch (Exception) {
791 } catch (Exception) {
796 } catch (Exception) {
800 [MethodImplAttribute (MethodImplOptions.NoInlining)]
801 public static void unhandled_exception () {
802 ThreadPool.QueueUserWorkItem (delegate {
803 throw new InvalidOperationException ();
805 Thread.Sleep (10000);
808 [MethodImplAttribute (MethodImplOptions.NoInlining)]
809 public static void unhandled_exception_user () {
811 System.Threading.Tasks.Task.Factory.StartNew (() => {
814 Thread.Sleep (10000);
818 [MethodImplAttribute (MethodImplOptions.NoInlining)]
819 public static void Throw () {
820 throw new Exception ();
823 internal static Delegate create_filter_delegate (Delegate dlg, MethodInfo filter_method)
826 throw new ArgumentNullException ();
827 if (dlg.Target != null)
828 throw new ArgumentException ();
829 if (dlg.Method == null)
830 throw new ArgumentException ();
832 var ret_type = dlg.Method.ReturnType;
833 var param_types = dlg.Method.GetParameters ().Select (x => x.ParameterType).ToArray ();
835 var dynamic = new DynamicMethod (Guid.NewGuid ().ToString (), ret_type, param_types, typeof (object), true);
836 var ig = dynamic.GetILGenerator ();
838 LocalBuilder retval = null;
839 if (ret_type != typeof (void))
840 retval = ig.DeclareLocal (ret_type);
842 var label = ig.BeginExceptionBlock ();
844 for (int i = 0; i < param_types.Length; i++)
845 ig.Emit (OpCodes.Ldarg, i);
846 ig.Emit (OpCodes.Call, dlg.Method);
849 ig.Emit (OpCodes.Stloc, retval);
851 ig.Emit (OpCodes.Leave, label);
853 ig.BeginExceptFilterBlock ();
855 ig.Emit (OpCodes.Call, filter_method);
857 ig.BeginCatchBlock (null);
859 ig.Emit (OpCodes.Pop);
861 ig.EndExceptionBlock ();
864 ig.Emit (OpCodes.Ldloc, retval);
866 ig.Emit (OpCodes.Ret);
868 return dynamic.CreateDelegate (dlg.GetType ());
871 [MethodImplAttribute (MethodImplOptions.NoInlining)]
872 static void exception_filter_method () {
873 throw new InvalidOperationException ();
876 [MethodImplAttribute (MethodImplOptions.NoInlining)]
877 static int exception_filter_filter (Exception exc) {
881 [MethodImplAttribute (MethodImplOptions.NoInlining)]
882 public static void exception_filter () {
883 var method = typeof (Tests).GetMethod (
884 "exception_filter_method", BindingFlags.NonPublic | BindingFlags.Static);
885 var filter_method = typeof (Tests).GetMethod (
886 "exception_filter_filter", BindingFlags.NonPublic | BindingFlags.Static);
888 var dlg = Delegate.CreateDelegate (typeof (Action), method);
890 var wrapper = (Action) create_filter_delegate (dlg, filter_method);
895 [MethodImplAttribute (MethodImplOptions.NoInlining)]
896 public static bool return_true () {
900 [MethodImplAttribute (MethodImplOptions.NoInlining)]
901 public static void exceptions2 () {
903 throw new Exception ();
904 Console.WriteLine ();
907 [MethodImplAttribute (MethodImplOptions.NoInlining)]
908 public static void threads () {
909 Thread t = new Thread (delegate () {});
915 [MethodImplAttribute (MethodImplOptions.NoInlining)]
916 public static void domains () {
917 AppDomain domain = AppDomain.CreateDomain ("domain");
919 CrossDomain o = (CrossDomain)domain.CreateInstanceAndUnwrap (
920 typeof (CrossDomain).Assembly.FullName, "CrossDomain");
922 domains_2 (o, new CrossDomain ());
930 AppDomain.Unload (domain);
935 [MethodImplAttribute (MethodImplOptions.NoInlining)]
936 public static void domains_2 (object o, object o2) {
939 [MethodImplAttribute (MethodImplOptions.NoInlining)]
940 public static void domains_3 () {
943 [MethodImplAttribute (MethodImplOptions.NoInlining)]
944 public static void invoke_in_domain () {
947 [MethodImplAttribute (MethodImplOptions.NoInlining)]
948 public static void invoke_in_domain_2 () {
951 [MethodImplAttribute (MethodImplOptions.NoInlining)]
952 public static void dynamic_methods () {
953 var m = new DynamicMethod ("dyn_method", typeof (void), new Type [] { typeof (int) }, typeof (object).Module);
954 var ig = m.GetILGenerator ();
956 ig.Emit (OpCodes.Ldstr, "FOO");
957 ig.Emit (OpCodes.Call, typeof (Tests).GetMethod ("dyn_call"));
958 ig.Emit (OpCodes.Ret);
960 var del = (Action<int>)m.CreateDelegate (typeof (Action<int>));
965 public static void dyn_call (string s) {
968 [MethodImplAttribute (MethodImplOptions.NoInlining)]
969 public static void ref_emit () {
970 AssemblyName assemblyName = new AssemblyName ();
971 assemblyName.Name = "foo";
973 AssemblyBuilder assembly =
974 Thread.GetDomain ().DefineDynamicAssembly (
975 assemblyName, AssemblyBuilderAccess.RunAndSave);
977 ModuleBuilder module = assembly.DefineDynamicModule ("foo.dll");
979 TypeBuilder tb = module.DefineType ("foo", TypeAttributes.Public, typeof (object));
980 MethodBuilder mb = tb.DefineMethod ("ref_emit_method", MethodAttributes.Public|MethodAttributes.Static, CallingConventions.Standard, typeof (void), new Type [] { });
981 ILGenerator ig = mb.GetILGenerator ();
982 ig.Emit (OpCodes.Ldstr, "FOO");
983 ig.Emit (OpCodes.Call, typeof (Tests).GetMethod ("ref_emit_call"));
984 ig.Emit (OpCodes.Ret);
986 Type t = tb.CreateType ();
988 t.GetMethod ("ref_emit_method").Invoke (null, null);
991 [MethodImplAttribute (MethodImplOptions.NoInlining)]
992 public static void ref_emit_call (string s) {
995 [MethodImplAttribute (MethodImplOptions.NoInlining)]
996 public static void frames_in_native () {
1000 [MethodImplAttribute (MethodImplOptions.NoInlining)]
1001 public static void string_call (string s) {
1004 [MethodImplAttribute (MethodImplOptions.NoInlining)]
1005 public static void ss_regress_654694 () {
1012 [MethodImplAttribute (MethodImplOptions.NoInlining)]
1013 public static void user () {
1016 Debugger.Log (5, Debugger.IsLogging () ? "A" : "", "B");
1019 [MethodImplAttribute (MethodImplOptions.NoInlining)]
1020 public static void type_load () {
1024 [MethodImplAttribute (MethodImplOptions.NoInlining)]
1025 static void type_load_2 () {
1026 var c1 = new Dictionary<int, int> ();
1028 var c = new TypeLoadClass ();
1030 var c2 = new TypeLoadClass2 ();
1034 [MethodImplAttribute (MethodImplOptions.NoInlining)]
1035 public static void regress () {
1036 regress_2755 (DateTime.Now);
1039 [MethodImplAttribute (MethodImplOptions.NoInlining)]
1040 public static unsafe void regress_2755 (DateTime d) {
1041 int* buffer = stackalloc int [128];
1046 for (int i = 0; i < 128; ++i)
1049 regress_2755_3 (sum);
1052 [MethodImplAttribute (MethodImplOptions.NoInlining)]
1053 public static void regress_2755_2 () {
1056 [MethodImplAttribute (MethodImplOptions.NoInlining)]
1057 public static void regress_2755_3 (int sum) {
1061 class TypeLoadClass {
1064 class TypeLoadClass2 {
1067 public class CrossDomain : MarshalByRefObject
1069 public void invoke () {
1070 Tests.invoke_in_domain ();
1073 public void invoke_2 () {
1074 Tests.invoke_in_domain_2 ();
1077 public int invoke_3 () {
1084 public ProcessStartInfo info;
1087 // Class used for line number info testing, don't change its layout
1088 public class LineNumbers
1090 [MethodImplAttribute (MethodImplOptions.NoInlining)]
1091 public static void ln1 () {
1097 [MethodImplAttribute (MethodImplOptions.NoInlining)]
1098 public static void ln2 () {
1101 [MethodImplAttribute (MethodImplOptions.NoInlining)]
1102 public static void ln3 () {
1103 #pragma warning disable 0219
1105 #pragma warning restore 0219