echo $TEST_FILE
TEST_TYPE1=`echo $TEST_TYPE1 | sed -s 's/&/\\\&/'`
TEST_TYPE2=`echo $TEST_TYPE2 | sed -s 's/&/\\\&/'`
-sed -e "s/VALIDITY/${TEST_VALIDITY}/g" -e "s/TYPE1/${TEST_TYPE1}/g" -e "s/TYPE2/${TEST_TYPE2}/g" -e "s/OPCODE/${TEST_OP}/g" > $TEST_FILE <<//EOF
+sed -e "s/VALIDITY/${TEST_VALIDITY}/g" -e "s/TYPE1/${TEST_TYPE1}/g" -e "s/TYPE2/${TEST_TYPE2}/g" > $TEST_FILE <<//EOF
// VALIDITY CIL which breaks the ECMA-335 rules.
// this CIL should fail verification by a conforming CLI verifier.
{
}
-.class public Covariant\`1<+T>
- extends [mscorlib]System.Object
-{
-}
-
-.class public Contravariant\`1<-T>
- extends [mscorlib]System.Object
-{
-}
-.class public Bivariant\`2<+T,-U>
+.class interface Bivariant\`2<+T,-U>
extends [mscorlib]System.Object
{
}
{
}
-.class public SubCovariant\`1<K>
- extends class Covariant\`1<!0>
-{
-}
-
-.class public SubContravariant\`1<H>
- extends class Contravariant\`1<!0>
-{
-}
.class interface public ICovariant\`1<+T>
{
}
-.method public static TYPE1 Main(TYPE2 V_0) cil managed
+.method public static TYPE1 Foo(TYPE2 V_0) cil managed
{
- .entrypoint
.maxstack 2
ldarg.0
ret // VALIDITY.
}
+
+.method public static int32 Foo() cil managed
+{
+ .entrypoint
+ .maxstack 2
+ .locals init (
+ TYPE2 V)
+ ldloc.0
+ call TYPE1 Foo(TYPE2)
+ pop
+ ldc.i4.0
+ ret // VALIDITY.
+}
//EOF
\ No newline at end of file