Welcome to mirror list, hosted at ThFree Co, Russian Federation.

TypeHierarchyBasic.il « Dependencies « StaticInterfaceMethods « Inheritance.Interfaces « Mono.Linker.Tests.Cases « test - github.com/mono/linker.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 2d8e8f97ca60fa33bf1c4cb19f0b53cd85405469 (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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
// Copyright (c) .NET Foundation and contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

.assembly extern System.Runtime
{
  .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A)
}

.assembly 'library' { }

.class interface public abstract auto ansi InterfaceScenario1
{
  .method public newslot virtual abstract static int32 Method() cil managed noinlining
  {
  } // end of method Method
} // end of class InterfaceScenario1
.class public auto ansi BaseScenario1
       extends [System.Runtime]System.Object
       implements InterfaceScenario1
{
  .method public static int32 Method() cil managed noinlining
  {
    .override method int32 InterfaceScenario1::Method()
    .locals init (int32 V_O)
    ldloca.s 0
    initobj int32
    ldloc.0
    ret
  } // end of method Method
} // end of class BaseScenario1
.class public auto ansi DerivedScenario1
       extends BaseScenario1
{
} // end of class DerivedScenario1
.class interface public abstract auto ansi InterfaceScenario2
{
  .method public newslot virtual abstract static int32 Method() cil managed noinlining
  {
  } // end of method Method
} // end of class InterfaceScenario2
.class public auto ansi BaseScenario2
       extends [System.Runtime]System.Object
       implements InterfaceScenario2
{
  .method public static int32 Method() cil managed noinlining
  {
    .override method int32 InterfaceScenario2::Method()
    .locals init (int32 V_O)
    ldloca.s 0
    initobj int32
    ldloc.0
    ret
  } // end of method Method
} // end of class BaseScenario2
.class public auto ansi DerivedScenario2
       extends BaseScenario2
       implements InterfaceScenario2
{
} // end of class DerivedScenario2
.class interface public abstract auto ansi InterfaceScenario3
{
  .method public newslot virtual abstract static int32 Method() cil managed noinlining
  {
  } // end of method Method
} // end of class InterfaceScenario3
.class public abstract auto ansi BaseScenario3
       extends [System.Runtime]System.Object
       implements InterfaceScenario3
{
} // end of class BaseScenario3
.class public auto ansi DerivedScenario3
       extends BaseScenario3
       implements InterfaceScenario3
{
  .method public static int32 MethodImplOnDerived() cil managed noinlining
  {
    .override method int32 InterfaceScenario3::Method()
    .locals init (int32 V_O)
    ldloca.s 0
    initobj int32
    ldloc.0
    ret
  } // end of method MethodImplOnDerived
} // end of class DerivedScenario3

.class public auto ansi TestEntrypoint
       extends [System.Runtime]System.Object
{
  .method public static void Test_Scenario1() cil managed noinlining
  {
    constrained. DerivedScenario1
    call int32 InterfaceScenario1::Method()
    pop
    ret
  } // end of method Test_Scenario1
  .method public static void Test_Scenario2() cil managed noinlining
  {
    constrained. DerivedScenario2
    call int32 InterfaceScenario2::Method()
    pop
    ret
  } // end of method Test_Scenario2
  .method public static void Test_Scenario3() cil managed noinlining
  {
    constrained. DerivedScenario3
    call int32 InterfaceScenario3::Method()
    pop
    ret
  } // end of method Test_Scenario3
  .method public static int32 Test() cil managed noinlining
  {
    .locals init (class [System.Runtime]System.Exception V_0)
    .try {
        call void TestEntrypoint::Test_Scenario1()
        call void TestEntrypoint::Test_Scenario2()
        call void TestEntrypoint::Test_Scenario3()
        leave.s Scenario1Done
    } catch [System.Runtime]System.Exception {
        stloc.0
        leave.s Scenario1Done
    }
Scenario1Done: nop
    ret
  } // end of method Test
} // end of class TestEntrypoint