diff --git a/dotnet/runtime/Metamodel/Representations/P6capture.cs b/dotnet/runtime/Metamodel/Representations/P6capture.cs index e72c1e8..52f0bfb 100644 --- a/dotnet/runtime/Metamodel/Representations/P6capture.cs +++ b/dotnet/runtime/Metamodel/Representations/P6capture.cs @@ -44,8 +44,7 @@ public override RakudoObject type_object_for(RakudoObject MetaPackage) /// public override RakudoObject instance_of(RakudoObject WHAT) { - var Object = new Instance(WHAT.STable); - return Object; + return new Instance(WHAT.STable); } /// diff --git a/dotnet/runtime/Metamodel/Representations/P6int.cs b/dotnet/runtime/Metamodel/Representations/P6int.cs index 36d5e9f..a6ab0ee 100644 --- a/dotnet/runtime/Metamodel/Representations/P6int.cs +++ b/dotnet/runtime/Metamodel/Representations/P6int.cs @@ -16,7 +16,8 @@ public sealed class P6int : Representation /// internal sealed class Instance : RakudoObject { - public Nullable Value; + public int Value; + public bool Undefined; public Instance(SharedTable STable) { this.STable = STable; @@ -33,8 +34,10 @@ public override RakudoObject type_object_for(RakudoObject MetaPackage) var STable = new SharedTable(); STable.HOW = MetaPackage; STable.REPR = this; - STable.WHAT = new Instance(STable); - return STable.WHAT; + var WHAT = new Instance(STable); + WHAT.Undefined = true; + STable.WHAT = WHAT; + return WHAT; } /// @@ -44,9 +47,7 @@ public override RakudoObject type_object_for(RakudoObject MetaPackage) /// public override RakudoObject instance_of(RakudoObject WHAT) { - var Object = new Instance(WHAT.STable); - Object.Value = 0; - return Object; + return new Instance(WHAT.STable); } /// @@ -56,7 +57,7 @@ public override RakudoObject instance_of(RakudoObject WHAT) /// public override bool defined(RakudoObject Obj) { - return ((Instance)Obj).Value.HasValue; + return !((Instance)Obj).Undefined; } public override RakudoObject get_attribute(RakudoObject Object, RakudoObject ClassHandle, string Name) @@ -91,7 +92,7 @@ public override void set_int(RakudoObject Object, int Value) public override int get_int(RakudoObject Object) { - return ((Instance)Object).Value.Value; + return ((Instance)Object).Value; } public override void set_num(RakudoObject Object, double Value) diff --git a/dotnet/runtime/Metamodel/Representations/P6num.cs b/dotnet/runtime/Metamodel/Representations/P6num.cs index 08e1ca5..8b87c61 100644 --- a/dotnet/runtime/Metamodel/Representations/P6num.cs +++ b/dotnet/runtime/Metamodel/Representations/P6num.cs @@ -16,7 +16,8 @@ public sealed class P6num : Representation /// internal sealed class Instance : RakudoObject { - public Nullable Value; + public double Value; + public bool Undefined; public Instance(SharedTable STable) { this.STable = STable; @@ -33,7 +34,9 @@ public override RakudoObject type_object_for(RakudoObject MetaPackage) var STable = new SharedTable(); STable.HOW = MetaPackage; STable.REPR = this; - STable.WHAT = new Instance(STable); + var WHAT = new Instance(STable); + WHAT.Undefined = true; + STable.WHAT = WHAT; return STable.WHAT; } @@ -44,9 +47,7 @@ public override RakudoObject type_object_for(RakudoObject MetaPackage) /// public override RakudoObject instance_of(RakudoObject WHAT) { - var Object = new Instance(WHAT.STable); - Object.Value = 0.0; - return Object; + return new Instance(WHAT.STable); } /// @@ -56,7 +57,7 @@ public override RakudoObject instance_of(RakudoObject WHAT) /// public override bool defined(RakudoObject Obj) { - return ((Instance)Obj).Value.HasValue; + return !((Instance)Obj).Undefined; } public override RakudoObject get_attribute(RakudoObject Object, RakudoObject ClassHandle, string Name) @@ -101,7 +102,7 @@ public override void set_num(RakudoObject Object, double Value) public override double get_num(RakudoObject Object) { - return ((Instance)Object).Value.Value; + return ((Instance)Object).Value; } public override void set_str(RakudoObject Object, string Value)