aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/ast/MethodNode.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast/MethodNode.java')
-rw-r--r--src/main/java/org/zwobble/couscous/ast/MethodNode.java8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/MethodNode.java b/src/main/java/org/zwobble/couscous/ast/MethodNode.java
index 5763b11..86ae649 100644
--- a/src/main/java/org/zwobble/couscous/ast/MethodNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/MethodNode.java
@@ -6,6 +6,8 @@ import org.zwobble.couscous.ast.visitors.NodeMapper;
import java.util.List;
import java.util.function.Function;
+import static org.zwobble.couscous.util.ExtraLists.eagerMap;
+
public class MethodNode implements CallableNode {
public static Builder staticMethod(String name) {
return builder(name).isStatic(true);
@@ -116,6 +118,12 @@ public class MethodNode implements CallableNode {
return body;
}
+ public MethodSignature signature() {
+ return new MethodSignature(
+ name,
+ eagerMap(arguments, argument -> argument.getType()));
+ }
+
public MethodNode mapBody(Function<List<StatementNode>, List<StatementNode>> function) {
return new MethodNode(annotations, isStatic, name, arguments, function.apply(body));
}