#pragma warning disable 168 using System; namespace Tests { class ConstExprs { enum EnumA { A, B, C } class ClassA where TSize : const int { public int GetVal() { return TSize; } } class ClassB where TSize : const int8 { ClassA mVal = new ClassA() ~ delete _; var mVal2 = new ClassA() ~ delete _; public int GetVal() { return mVal.GetVal(); } public int GetVal2() { return mVal2.GetVal(); } } class ClassC where TEnum : const EnumA { public int Test() { EnumA ea = TEnum; if (TEnum == .A) { return 1; } return 0; } } [Test] public static void TestBasics() { ClassB cb = scope .(); Test.Assert(cb.GetVal() == 123); Test.Assert(cb.GetVal2() == 223); ClassB cb2 = scope .(); Test.Assert(cb2.GetVal() == -45); Test.Assert(cb2.GetVal2() == 55); ClassC cc = scope .(); Test.Assert(cc.Test() == 1); } } }