diff --git a/BeefLibs/corlib/src/Bitfield.bf b/BeefLibs/corlib/src/Bitfield.bf index 319db448..a33efece 100644 --- a/BeefLibs/corlib/src/Bitfield.bf +++ b/BeefLibs/corlib/src/Bitfield.bf @@ -147,6 +147,9 @@ namespace System str.Append("public "); else if (mProtection == .Protected) str.Append("protected "); + if (fieldInfo.IsStatic) + str.Append("static "); + bool wantsMut = fieldInfo.Owner.IsStruct && !fieldInfo.IsStatic; void TypeStr(String str, Type t) { @@ -205,14 +208,14 @@ namespace System { if (pass == 0) { - str.AppendF($"\t[Inline]\n\tset{(fieldInfo.Owner.IsStruct ? " mut" : "")}\n\t{{\n"); + str.AppendF($"\t[Inline]\n\tset{(wantsMut ? " mut" : "")}\n\t{{\n"); } else break; } else { - str.AppendF($"\t[Inline, {((pass == 0) ? "Checked" : "Unchecked")}]\n\tset{(fieldInfo.Owner.IsStruct ? " mut" : "")}\n\t{{\n"); + str.AppendF($"\t[Inline, {((pass == 0) ? "Checked" : "Unchecked")}]\n\tset{(wantsMut ? " mut" : "")}\n\t{{\n"); if ((pass == 0) && (rangeCheckMin) && (rangeCheckMax)) str.AppendF($"\t\tRuntime.Assert((value >= {minVal}) && (value <= {maxVal}));\n"); else if ((pass == 0) && (rangeCheckMin)) diff --git a/IDEHelper/Tests/src/Bitfields.bf b/IDEHelper/Tests/src/Bitfields.bf index c2d10121..ae3a4a0e 100644 --- a/IDEHelper/Tests/src/Bitfields.bf +++ b/IDEHelper/Tests/src/Bitfields.bf @@ -22,29 +22,29 @@ namespace Tests [Bitfield(.Public, .BitsRev(8), "F")] [Bitfield(.Public, .ValueRangeRev(0..<256), "G")] [Bitfield(.Public, .BitsAt(8, 0), "H")] - public int32 mVal2; + public static int32 sVal2; } [Test] static void TestBasics() { - Test.Assert(sizeof(StructA) == 8); + Test.Assert(sizeof(StructA) == 4); StructA sa = .(); sa.A = 0x12; sa.B = 7; sa.C = .C; sa.D = 9; - sa.E = 0x22; - sa.F = 0x33; - sa.G = 0x44; - sa.H = 0x55; + StructA.E = 0x22; + StructA.F = 0x33; + StructA.G = 0x44; + StructA.H = 0x55; Test.Assert(sa.A == 0x12); Test.Assert(sa.B == 7); Test.Assert(sa.C == .C); Test.Assert(sa.D == 9); Test.Assert(sa.mVal == 0x0025FF12); - Test.Assert(sa.mVal2 == 0x22334455); + Test.Assert(StructA.sVal2 == 0x22334455); } } } \ No newline at end of file