blob: 1f736ff6f5da917f3842ee89c752f53d22b99fc4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Linq;
interface I
{
void Explicit ();
}
class CallerMemberTest : I
{
object field = TraceStatic ("field");
CallerMemberTest ()
: this (TraceStatic (".ctor"))
{
}
CallerMemberTest (object arg)
{
}
static IEnumerable<int> Enumerator ()
{
TraceStatic ("Enumerator");
yield return 1;
}
void I.Explicit ()
{
Trace ("Explicit");
}
public void GenericMethod<T> ()
{
Trace ("GenericMethod");
}
public int this [string arg] {
set {
Trace ("Item");
}
}
public bool Property {
get {
Trace ("Property");
return false;
}
}
public static implicit operator CallerMemberTest (int i)
{
TraceStatic ("op_Implicit");
return new CallerMemberTest ();
}
public void Trace(string expected, [CallerMemberName] string member = ";;")
{
Console.WriteLine (member);
if (expected != member)
throw new ApplicationException (member);
}
public static object TraceStatic(string expected, [CallerMemberName] object member = null)
{
Console.WriteLine (member);
if (expected != member as string)
throw new ApplicationException (string.Format ("`{0}' != `{1}'", expected, member as string));
return member;
}
public static void Main ()
{
var c = new CallerMemberTest ();
c.Trace ("Main");
Action a = () => {
c.Trace ("Main");
};
a ();
a = () => TraceStatic ("Main");
a ();
foreach (var e in Enumerator ()) {
}
var atype = new {
OO = TraceStatic ("Main")
};
var l = (from x in "ab" select TraceStatic ("Main")).ToList ();
c.GenericMethod<long> ();
c ["aa"] = 4;
var p = c.Property;
I i = c;
i.Explicit ();
CallerMemberTest op = 1;
}
}
|