public ValueTypeFieldAddress(DebuggerRuntimeImpl runtime, AddressILValue objValue, DmdFieldInfo field) : base(runtime, field.FieldType) { Debug.Assert(field.ReflectedType.IsValueType); this.objValue = objValue; this.field = field; }
internal ILValue LoadValueTypeFieldAddress(AddressILValue objValue, DmdFieldInfo field) { Debug.Assert(field.ReflectedType.IsValueType); var dnObjValue = TryGetDotNetValue(objValue, canCreateValue: false); if (dnObjValue != null) { var addrValue = runtime.LoadFieldAddress(evalInfo, dnObjValue, field); if (addrValue != null) { Debug.Assert(addrValue.Type.IsByRef); return(new ByRefILValueImpl(this, RecordValue(addrValue))); } } return(new ValueTypeFieldAddress(this, objValue, field)); }
public override bool Equals(AddressILValue other) => other is UnboxAddressILValue addr &&
public override bool Equals(AddressILValue other) => other is PointerILValue addr &&
public override bool Equals(AddressILValue other) => other is ByRefILValueImpl addr &&
public abstract bool Equals(AddressILValue other);
public override bool Equals(AddressILValue other) => other is ArgumentAddress addr &&
public override bool Equals(AddressILValue other) => other is LocalAddress addr &&
public override bool Equals(AddressILValue other) => other is ValueTypeFieldAddress addr &&
public override bool Equals(AddressILValue other) => other is StaticFieldAddress addr &&
internal ILValue LoadValueTypeFieldAddress(AddressILValue objValue, DmdFieldInfo field) { Debug.Assert(field.ReflectedType.IsValueType); return(new ValueTypeFieldAddress(this, objValue, field)); }