Mutate() public method

public Mutate ( Mono.CSharp.TypeParameterMutator mutator ) : FieldSpec
mutator Mono.CSharp.TypeParameterMutator
return FieldSpec
Example #1
0
        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();
                }
            }
        }
Example #2
0
        public void Emit(OpCode opcode, FieldSpec field)
        {
            if (IsAnonymousStoreyMutateRequired)
            {
                field = field.Mutate(CurrentAnonymousMethod.Storey.Mutator);
            }

            ig.Emit(opcode, field.GetMetaInfo());
        }
Example #3
0
		public void Emit (OpCode opcode, FieldSpec field)
		{
			if (IsAnonymousStoreyMutateRequired)
				field = field.Mutate (CurrentAnonymousMethod.Storey.Mutator);

			ig.Emit (opcode, field.GetMetaInfo ());
		}
Example #4
0
		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 ();
				}
			}
		}