aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/zwobble/couscous/ast/MethodSignature.java4
-rw-r--r--src/main/java/org/zwobble/couscous/backends/Names.java8
-rw-r--r--src/main/resources/csharp/runtime/_couscous.cs2
-rw-r--r--src/main/resources/csharp/runtime/java/lang/Integer.cs4
-rw-r--r--src/main/resources/csharp/runtime/java/lang/Object.cs2
-rw-r--r--src/main/resources/python/runtime/java/lang/Integer.py6
6 files changed, 18 insertions, 8 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/MethodSignature.java b/src/main/java/org/zwobble/couscous/ast/MethodSignature.java
index d7bc725..908e673 100644
--- a/src/main/java/org/zwobble/couscous/ast/MethodSignature.java
+++ b/src/main/java/org/zwobble/couscous/ast/MethodSignature.java
@@ -21,6 +21,10 @@ public class MethodSignature {
return arguments;
}
+ public TypeName getReturnType() {
+ return returnType;
+ }
+
@Override
public String toString() {
return "MethodSignature(" +
diff --git a/src/main/java/org/zwobble/couscous/backends/Names.java b/src/main/java/org/zwobble/couscous/backends/Names.java
index fc8072f..d467296 100644
--- a/src/main/java/org/zwobble/couscous/backends/Names.java
+++ b/src/main/java/org/zwobble/couscous/backends/Names.java
@@ -3,6 +3,7 @@ package org.zwobble.couscous.backends;
import com.google.common.base.Joiner;
import com.google.common.collect.Iterables;
import org.zwobble.couscous.ast.MethodSignature;
+import org.zwobble.couscous.ast.TypeName;
import static com.google.common.collect.Iterables.transform;
import static org.zwobble.couscous.util.ExtraLists.list;
@@ -11,6 +12,11 @@ public class Names {
public static String toUniqueName(MethodSignature signature) {
return Joiner.on("__").join(Iterables.concat(
list(signature.getName()),
- transform(signature.getArguments(), argument -> argument.getQualifiedName().replace('.', '_'))));
+ transform(signature.getArguments(), Names::typeToString),
+ list(typeToString(signature.getReturnType()))));
+ }
+
+ private static String typeToString(TypeName argument) {
+ return argument.getQualifiedName().replace('.', '_');
}
}
diff --git a/src/main/resources/csharp/runtime/_couscous.cs b/src/main/resources/csharp/runtime/_couscous.cs
index bcc2a76..2666c9d 100644
--- a/src/main/resources/csharp/runtime/_couscous.cs
+++ b/src/main/resources/csharp/runtime/_couscous.cs
@@ -1,6 +1,6 @@
namespace Couscous {
internal class _couscous {
- internal static bool same__java_lang_Object__java_lang_Object(object first, object second) {
+ internal static bool same__java_lang_Object__java_lang_Object__boolean(object first, object second) {
return object.ReferenceEquals(first, second);
}
}
diff --git a/src/main/resources/csharp/runtime/java/lang/Integer.cs b/src/main/resources/csharp/runtime/java/lang/Integer.cs
index 9e6ee08..8d6174d 100644
--- a/src/main/resources/csharp/runtime/java/lang/Integer.cs
+++ b/src/main/resources/csharp/runtime/java/lang/Integer.cs
@@ -1,6 +1,6 @@
namespace Couscous.java.lang {
internal class Integer : Object {
- internal static int valueOf__int(int value) {
+ internal static int valueOf__int__java_lang_Integer(int value) {
return value;
}
@@ -10,7 +10,7 @@ namespace Couscous.java.lang {
_value = value;
}
- internal override bool equals__java_lang_Object(Object other) {
+ internal override bool equals__java_lang_Object__boolean(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
index be76f7a..618ec3c 100644
--- a/src/main/resources/csharp/runtime/java/lang/Object.cs
+++ b/src/main/resources/csharp/runtime/java/lang/Object.cs
@@ -1,6 +1,6 @@
namespace Couscous.java.lang {
internal class Object {
- internal virtual bool equals__java_lang_Object(Object other) {
+ internal virtual bool equals__java_lang_Object__boolean(Object other) {
return System.Object.ReferenceEquals(this, other);
}
diff --git a/src/main/resources/python/runtime/java/lang/Integer.py b/src/main/resources/python/runtime/java/lang/Integer.py
index b9e9097..fcd85a9 100644
--- a/src/main/resources/python/runtime/java/lang/Integer.py
+++ b/src/main/resources/python/runtime/java/lang/Integer.py
@@ -1,16 +1,16 @@
class Integer(object):
@staticmethod
- def parseInt__java_lang_String(value):
+ def parseInt__java_lang_String__int(value):
return int(value)
@staticmethod
- def valueOf__int(value):
+ def valueOf__int__java_lang_Integer(value):
return value
def __init__(self, value):
self._value = value
- def equals__java_lang_Object(self, other):
+ def equals__java_lang_Object__boolean(self, other):
# TODO: test this properly
return isinstance(other, Integer) and other._value == self._value