From caa7e3a069fa0dfe81834d48850384c38594dd3a Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 26 Apr 2016 20:54:03 +0100 Subject: Remove C# runtime from main, use for tests only --- .../backends/csharp/runtime/java/lang/Integer.cs | 14 ++++++++ .../backends/csharp/runtime/java/lang/Iterable.cs | 6 ++++ .../backends/csharp/runtime/java/lang/Object.cs | 11 +++++++ .../backends/csharp/runtime/java/util/Arrays.cs | 37 ++++++++++++++++++++++ .../backends/csharp/runtime/java/util/Iterator.cs | 7 ++++ 5 files changed, 75 insertions(+) create mode 100644 src/test/resources/org/zwobble/couscous/tests/backends/csharp/runtime/java/lang/Integer.cs create mode 100644 src/test/resources/org/zwobble/couscous/tests/backends/csharp/runtime/java/lang/Iterable.cs create mode 100644 src/test/resources/org/zwobble/couscous/tests/backends/csharp/runtime/java/lang/Object.cs create mode 100644 src/test/resources/org/zwobble/couscous/tests/backends/csharp/runtime/java/util/Arrays.cs create mode 100644 src/test/resources/org/zwobble/couscous/tests/backends/csharp/runtime/java/util/Iterator.cs (limited to 'src/test/resources') diff --git a/src/test/resources/org/zwobble/couscous/tests/backends/csharp/runtime/java/lang/Integer.cs b/src/test/resources/org/zwobble/couscous/tests/backends/csharp/runtime/java/lang/Integer.cs new file mode 100644 index 0000000..6ed87db --- /dev/null +++ b/src/test/resources/org/zwobble/couscous/tests/backends/csharp/runtime/java/lang/Integer.cs @@ -0,0 +1,14 @@ +namespace Couscous.java.lang { + internal class Integer : Object { + private readonly int _value; + + internal Integer(int value) { + _value = value; + } + + internal override bool equals(Object other) { + var integer = other as Integer; + return integer != null && integer._value == _value; + } + } +} diff --git a/src/test/resources/org/zwobble/couscous/tests/backends/csharp/runtime/java/lang/Iterable.cs b/src/test/resources/org/zwobble/couscous/tests/backends/csharp/runtime/java/lang/Iterable.cs new file mode 100644 index 0000000..314dbce --- /dev/null +++ b/src/test/resources/org/zwobble/couscous/tests/backends/csharp/runtime/java/lang/Iterable.cs @@ -0,0 +1,6 @@ +namespace Couscous.java.lang { + // TODO: implement in Java + internal interface Iterable { + java.util.Iterator iterator(); + } +} diff --git a/src/test/resources/org/zwobble/couscous/tests/backends/csharp/runtime/java/lang/Object.cs b/src/test/resources/org/zwobble/couscous/tests/backends/csharp/runtime/java/lang/Object.cs new file mode 100644 index 0000000..14a8f44 --- /dev/null +++ b/src/test/resources/org/zwobble/couscous/tests/backends/csharp/runtime/java/lang/Object.cs @@ -0,0 +1,11 @@ +namespace Couscous.java.lang { + internal class Object { + internal virtual bool equals(Object other) { + return System.Object.ReferenceEquals(this, other); + } + + public static implicit operator Object(int value) { + return new Integer(value); + } + } +} diff --git a/src/test/resources/org/zwobble/couscous/tests/backends/csharp/runtime/java/util/Arrays.cs b/src/test/resources/org/zwobble/couscous/tests/backends/csharp/runtime/java/util/Arrays.cs new file mode 100644 index 0000000..96b31d4 --- /dev/null +++ b/src/test/resources/org/zwobble/couscous/tests/backends/csharp/runtime/java/util/Arrays.cs @@ -0,0 +1,37 @@ +namespace Couscous.java.util { + internal static class Arrays { + internal static java.lang.Iterable asList(T[] values) { + return new _ArrayList(values); + } + } + + internal class _ArrayList : java.lang.Iterable { + private readonly T[] values; + + internal _ArrayList(T[] values) { + this.values = values; + } + + public java.util.Iterator iterator() { + return new _ArrayIterator(values); + } + } + + internal class _ArrayIterator : java.util.Iterator { + private readonly T[] values; + private int nextIndex; + + internal _ArrayIterator(T[] values) { + this.values = values; + this.nextIndex = 0; + } + + public bool hasNext() { + return nextIndex < values.Length; + } + + public T next() { + return values[nextIndex++]; + } + } +} diff --git a/src/test/resources/org/zwobble/couscous/tests/backends/csharp/runtime/java/util/Iterator.cs b/src/test/resources/org/zwobble/couscous/tests/backends/csharp/runtime/java/util/Iterator.cs new file mode 100644 index 0000000..9c0098a --- /dev/null +++ b/src/test/resources/org/zwobble/couscous/tests/backends/csharp/runtime/java/util/Iterator.cs @@ -0,0 +1,7 @@ +namespace Couscous.java.util { + // TODO: implement in Java + internal interface Iterator { + bool hasNext(); + T next(); + } +} -- cgit v1.2.3