void StoreEntity(OpCode opcode, int index, Expression value, IType elementType)
{
// array reference
Dup();
EmitLoadLiteral(index); // element index
bool stobj = IsStobj(opcode); // value type sequence?
if (stobj)
{
Type systemType = GetSystemType(elementType);
_il.Emit(OpCodes.Ldelema, systemType);
LoadExpressionWithType(elementType, value); // might need to cast to decimal
_il.Emit(opcode, systemType);
}
else
{
LoadExpressionWithType(elementType, value);
_il.Emit(opcode);
}
}