diff options
Diffstat (limited to 'src')
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 |
