From 651c531a85d23fb88cc810ac5cdd92f80f1c8a3a Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 6 Feb 2016 15:14:19 +0000 Subject: Allow integers to boxed in C# backend --- src/main/resources/csharp/runtime/java/lang/Integer.cs | 13 ++++++++++++- src/main/resources/csharp/runtime/java/lang/Object.cs | 11 +++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/csharp/runtime/java/lang/Object.cs (limited to 'src/main/resources/csharp/runtime/java') diff --git a/src/main/resources/csharp/runtime/java/lang/Integer.cs b/src/main/resources/csharp/runtime/java/lang/Integer.cs index 9a9f8f5..9e6ee08 100644 --- a/src/main/resources/csharp/runtime/java/lang/Integer.cs +++ b/src/main/resources/csharp/runtime/java/lang/Integer.cs @@ -1,7 +1,18 @@ namespace Couscous.java.lang { - internal class Integer { + internal class Integer : Object { internal static int valueOf__int(int value) { return value; } + + private readonly int _value; + + internal Integer(int value) { + _value = value; + } + + internal override bool equals__java_lang_Object(Object other) { + var integer = other as Integer; + return integer != null && integer._value == _value; + } } } diff --git a/src/main/resources/csharp/runtime/java/lang/Object.cs b/src/main/resources/csharp/runtime/java/lang/Object.cs new file mode 100644 index 0000000..be76f7a --- /dev/null +++ b/src/main/resources/csharp/runtime/java/lang/Object.cs @@ -0,0 +1,11 @@ +namespace Couscous.java.lang { + internal class Object { + internal virtual bool equals__java_lang_Object(Object other) { + return System.Object.ReferenceEquals(this, other); + } + + public static implicit operator Object(int value) { + return new Integer(value); + } + } +} -- cgit v1.2.3