summaryrefslogtreecommitdiff
path: root/tests/src/Loader/classloader/generics/Constraints/ConstraintsOnType/Positive/StaticField_DefaultCtorAndStructConstraint_Pos.il
blob: 6a649cb0b402d126720bb330f874074311a151b1 (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
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.

.assembly extern System.Console { }

.assembly extern mscorlib{}
.assembly extern types{}

.assembly StaticField_DefaultCtorAndStructConstraint_Pos {}


// Generic class with struct() and new() constraints
.class public auto ansi beforefieldinit E`1<valuetype .ctor T>
         extends [mscorlib]System.Object
{

    .field public static int32 i 


    .method public hidebysig specialname rtspecialname 
            instance void  .ctor() cil managed
    {
      .maxstack  8
      ldarg.0
      call       instance void [mscorlib]System.Object::.ctor()
      ret
    } 
} 

.class public auto ansi beforefieldinit SF_DefaultCtorAndStructConstraint 
         extends [mscorlib]System.Object
{


  // POSITIVE TEST
  // generic argument is a struct
  .method public hidebysig static void Test3() cil managed
  {
    .maxstack  1
    
    ldsfld int32 class E`1<valuetype [types]NonGenStruct>::i
    pop

    ret
  }


  // POSITIVE TEST
  // generic argument is an enum
  .method public hidebysig static void Test8() cil managed
  {
    .maxstack  1

    ldsfld int32 class E`1<valuetype [types]Enum1>::i
    pop

    ret
  }


  // POSITIVE TEST
  // generic argument is an mscorlib struct
  .method public hidebysig static void Test9() cil managed
  {
    .maxstack  1
    
    ldsfld int32 class E`1<valuetype [mscorlib]System.DateTime>::i
    pop

    ret
  }

}

.class public auto ansi beforefieldinit SF_DefaultCtorAndStructConstraintGenTypes 
         extends [mscorlib]System.Object
{


  // POSITIVE TEST
  // generic argument is a struct 
  .method public hidebysig static void Test3() cil managed
  {
    .maxstack  1
    
    ldsfld int32 class E`1<valuetype [types]GenStruct<int32>>::i
    pop

    ret
  }



  // POSITIVE TEST
  // generic argument is an mscorlib generic struct
  .method public hidebysig static void Test6() cil managed
  {
    .maxstack  1

    ldsfld int32 class E`1<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<valuetype [types]NonGenStruct,int32>>::i
    pop

    ret
  }


}