public void Emit(OpCode opcode, FieldSpec field)
{
if (IsAnonymousStoreyMutateRequired)
{
field = field.Mutate(CurrentAnonymousMethod.Storey.Mutator);
}
ig.Emit(opcode, field.GetMetaInfo());
if (TrackStackTypes)
{
switch (opcode.StackBehaviourPush)
{
case StackBehaviour.Push0:
// nothing
break;
case StackBehaviour.Push1:
SetStackType(field.MemberType);
break;
case StackBehaviour.Pushi:
SetStackType(ReferenceContainer.MakeType(Module, field.MemberType));
break;
default:
throw new NotImplementedException();
}
}
}