private void InjectExactlyTheSameTypeAsThis(InstructionWriter writer, ITypeSignature enhancedType, ITypeSignature genericTypeInstance)
        {
            writer.EmitInstruction(OpCodeNumber.Ldarg_0);
            if (enhancedType.IsValueTypeSafe() == true)
            {
                writer.EmitInstructionType(OpCodeNumber.Ldobj, genericTypeInstance);
                writer.EmitInstructionType(OpCodeNumber.Box, genericTypeInstance);
            }

            writer.EmitInstructionMethod(OpCodeNumber.Call, this.getTypeMethod);

            writer.EmitInstruction(OpCodeNumber.Ldarg_1);
            writer.EmitInstructionMethod(OpCodeNumber.Callvirt, this.getTypeMethod);

            writer.EmitInstruction(OpCodeNumber.Ceq);
        }