aboutsummaryrefslogtreecommitdiff
path: root/src/main/resources
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-06 15:14:19 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-06 15:14:19 +0000
commit651c531a85d23fb88cc810ac5cdd92f80f1c8a3a (patch)
treecc9b627bc663a9dc3c72d8adc3015eda8f183e3e /src/main/resources
parentf97a917753b91b6f738593dc76cda98207f888d1 (diff)
Allow integers to boxed in C# backend
Diffstat (limited to 'src/main/resources')
-rw-r--r--src/main/resources/csharp/runtime/java/lang/Integer.cs13
-rw-r--r--src/main/resources/csharp/runtime/java/lang/Object.cs11
2 files changed, 23 insertions, 1 deletions
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);
+ }
+ }
+}