using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace BreakpointsKernel { public class NullableTest : Test { // Changeset 74104 - BreakpointsOS.cs. TestNullableTypes. // It appears to work, but whatever value is last used there shows up for the Size value later on in line 123. // If you comment out the x2 and y2 you will see 32 instead. // How to reproduce this outside of this changeset? Cant seem to repro it here. protected UInt32? mSize; public virtual UInt32? Size { get { return mSize; } } void FieldTest() { mSize = 7; bool xHasValue = mSize.HasValue; // .HasValue is false } public override void Run() { UInt32 x = 32; FieldTest(); mSize = 7; bool xHasValue = mSize.HasValue; // .HasValue is false Chk(xHasValue); x = mSize.Value; if (mSize.Value == 7) { int i = 5; } Chk(mSize.Value == 7); // Dies with 0x05 here UInt32? y = x; Chk(y.HasValue); Chk(y.Value == 32); UInt32 x2 = 64; UInt32? y2 = x2; Chk(y2.Value == 64); Chk(y.Value == 32); UInt32? y3 = x2; Chk(y3.Value == 64); } } }