Merge pull request #1219 from panzone/los_partial_marking
[mono.git] / mcs / tests / test-880.cs
1 using System;
2
3 public class A
4 {
5         public static void Main ()
6         {
7         }
8
9         static void Test1 ()
10         {
11                 int a;
12                 bool r = false;
13
14                 if (r && (a = 1) > 0 && r) {
15                         System.Console.WriteLine (a);
16                 }
17         }
18
19         static void Test2 ()
20         {
21                 int a;
22                 var res = (a = 1) > 0 || Call (a);
23         }
24
25         static void Test3 ()
26         {
27                 int a;
28                 if ((a = 1) > 0 || Call (a))
29                         return;
30         }
31
32         static void Test4 ()
33         {
34                 int version1;
35                 bool r = false;
36                 if (r || !OutCall (out version1) || version1 == 0 || version1 == -1)
37                 {
38                         throw new ArgumentException();
39                 }
40         }
41
42         static void Test5 ()
43         {
44                 bool r = false;
45                 int t1;
46                 if (Foo (r ? Call (1) : Call (4), OutCall (out t1)))
47                         Console.WriteLine (t1);
48         }
49
50         static void Test6 ()
51         {
52                 int b = 0;
53                 var res = b != 0 && b.ToString () != null;
54         }
55
56         static bool Test7 ()
57         {
58                 int f = 1;
59                 int g;
60                 return f > 1 && OutCall (out g) && g > 1;
61         }
62
63         static void Test8 ()
64         {
65                 bool x = true;
66
67                 int a;
68                 if (x ? OutCall (out a) : OutCall (out a))
69                         System.Console.WriteLine (a);
70                 else
71                         System.Console.WriteLine (a);
72         }
73
74         static bool OutCall (out int arg)
75         {
76                 arg = 1;
77                 return false;
78         }
79         
80         static bool Call (int arg)
81         {
82                 return false;
83         }
84
85         static bool Foo (params object[] arg)
86         {
87                 return false;
88         }
89 }