linux-packaging-mono/mono/tests/dim-constrained3_gm.il
Xamarin Public Jenkins (auto-signing) ef583813eb Imported Upstream version 6.4.0.137
Former-commit-id: 943baa9f16a098c33e129777827f3a9d20da00d6
2019-07-26 19:53:28 +00:00

69 lines
1.7 KiB
Plaintext

// 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 mscorlib { }
.assembly constrained3_gm { }
.class interface private abstract auto ansi IFrobber`1<T>
{
.method public hidebysig newslot virtual instance int32 Frob<U>()
{
ldstr "IFrobber<T>:Frob"
call void [mscorlib]System.Console::WriteLine(string)
ldc.i4 34
ret
}
}
.class interface private abstract auto ansi IRobber`1<T> implements class IFrobber`1<!T>
{
.method public hidebysig final newslot virtual instance int32 Frob<U>()
{
.override class IFrobber`1<!T>::Frob
ldstr "IRobber<T>:Frob"
call void [mscorlib]System.Console::WriteLine(string)
ldc.i4 66
ret
}
}
.class interface private abstract auto ansi IGrabber`1<T> implements class IFrobber`1<!T>
{
.method public hidebysig final newslot virtual instance int32 Frob<U>()
{
.override class IFrobber`1<!T>::Frob
ldstr "IGrabber<T>:Frob"
call void [mscorlib]System.Console::WriteLine(string)
ldc.i4.3
ret
}
}
.class value Adder`1<T, U> implements class IFrobber`1<!T>, class IRobber`1<!U>, class IGrabber`1<!U[]>
{
}
.method public hidebysig static int32 Main()
{
.entrypoint
.locals init (
valuetype Adder`1<object, string>
)
ldloca.s 0
constrained. valuetype Adder`1<object, string>
callvirt instance int32 class IFrobber`1<object>::Frob<object>()
ldloca.s 0
constrained. valuetype Adder`1<object, string>
callvirt instance int32 class IFrobber`1<string>::Frob<object>()
add
ldc.i4 100
sub
ret
}