aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/interpreter/MethodSignature.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-01-06 08:16:52 +0000
committerMichael Williamson <mike@zwobble.org>2016-01-06 08:18:18 +0000
commite4229671c4cf6db860fc6cf68bcfb8fdd69fdcb8 (patch)
treeb8f61f97f0e9af47f90f49e0debaf061d07f9229 /src/main/java/org/zwobble/couscous/interpreter/MethodSignature.java
parent5eafcf8cb10546916d4b38c3208ebfdfafff93e4 (diff)
Support method overloading in interpreter
Diffstat (limited to 'src/main/java/org/zwobble/couscous/interpreter/MethodSignature.java')
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/MethodSignature.java38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/interpreter/MethodSignature.java b/src/main/java/org/zwobble/couscous/interpreter/MethodSignature.java
new file mode 100644
index 0000000..708bc9a
--- /dev/null
+++ b/src/main/java/org/zwobble/couscous/interpreter/MethodSignature.java
@@ -0,0 +1,38 @@
+package org.zwobble.couscous.interpreter;
+
+import org.zwobble.couscous.ast.TypeName;
+
+import java.util.List;
+import java.util.Objects;
+
+public class MethodSignature {
+ private String name;
+ private List<TypeName> arguments;
+
+ public MethodSignature(String name, List<TypeName> arguments) {
+ this.name = name;
+ this.arguments = arguments;
+ }
+
+ @Override
+ public String toString() {
+ return "MethodSignature(" +
+ "name='" + name + '\'' +
+ ", arguments=" + arguments +
+ ')';
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ MethodSignature that = (MethodSignature) o;
+ return Objects.equals(name, that.name) &&
+ Objects.equals(arguments, that.arguments);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, arguments);
+ }
+}