#! /bin/sh SED="sed" if [ `which gsed 2> /dev/null` ] ; then SED="gsed" fi TEST_NAME=$1 TEST_VALIDITY=$2 TEST_INSTANTIATION=$3 TEST_CONSTRAINTS=$4 TEST_EXTRA_CODE=$5 TEST_NAME=${TEST_VALIDITY}_${TEST_NAME} TEST_FILE=${TEST_NAME}_generated.il echo $TEST_FILE $SED -e "s/VALIDITY/${TEST_VALIDITY}/g" -e "s/INSTANTIATION/${TEST_INSTANTIATION}/g" -e "s/CONSTRAINTS/${TEST_CONSTRAINTS}/g" -e "s/EXTRA_CODE/${TEST_EXTRA_CODE}/g" > $TEST_FILE < extends [mscorlib]System.Object { .field !T t .method public hidebysig specialname rtspecialname instance default void .ctor () cil managed { .maxstack 8 ldarg.0 call instance void object::.ctor() ret } .method public void DoStuff() cil managed { .maxstack 8 .locals init () ldtoken !T call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) call void class [mscorlib]System.Console::WriteLine(object) EXTRA_CODE ret } } .class Driver extends [mscorlib]System.Object { .method public static void UseIFace (IFace arg0) { .maxstack 8 ret } .method public static void MemberMain() cil managed { .maxstack 8 .locals init () newobj instance void class TemplateTarget::.ctor() call instance void class TemplateTarget::DoStuff() ret } .method public static void Main() cil managed { .entrypoint .maxstack 8 .locals init () call void Driver::MemberMain() leave END END: ret } } //EOF