Merge pull request #3563 from lewurm/interpreter
[mono.git] / mcs / tests / dtest-046.cs
1 using System;
2
3 class Test
4 {
5         delegate int D (ref int i);
6
7         public dynamic Foo;
8
9         public static int Main ()
10         {
11                 dynamic d = new Test ();
12
13                 d.Foo = (Func<int, int>) (l => 4 + l);
14
15                 var r1 = d.Foo (3);
16                 if (r1 != 7)
17                         return 1;
18
19                 d.Foo (2);
20
21                 d.Foo = (Action) (() => Console.WriteLine ("action"));
22                 d.Foo ();
23
24                 d.Foo = (D) ((ref int l) => { l = 9; return 4; });
25
26                 int ref_value = 3;
27                 var r2 = d.Foo (ref ref_value);
28                 if (r2 != 4)
29                         return 2;
30
31                 if (ref_value != 9)
32                         return 3;
33
34                 Console.WriteLine ("ok");
35                 return 0;
36         }
37 }