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); }