diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-04-09 15:08:18 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-04-09 15:08:18 +0100 |
| commit | a0e8824a6deff07ccfe76be813e508d9266ac23e (patch) | |
| tree | 17a43585836f24cb368db77be7e37b95dc1c16a3 /src/main/java/org/zwobble/couscous/ast/MethodNode.java | |
| parent | 2bc236438ce5d5120c9c34f213b4b49b475dcee2 (diff) | |
C# backend: Support generic method definitions
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast/MethodNode.java')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/ast/MethodNode.java | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/MethodNode.java b/src/main/java/org/zwobble/couscous/ast/MethodNode.java index 0f91024..1cb3766 100644 --- a/src/main/java/org/zwobble/couscous/ast/MethodNode.java +++ b/src/main/java/org/zwobble/couscous/ast/MethodNode.java @@ -1,9 +1,9 @@ package org.zwobble.couscous.ast; import com.google.common.collect.ImmutableList; -import org.zwobble.couscous.types.Type; import org.zwobble.couscous.ast.visitors.NodeMapper; import org.zwobble.couscous.ast.visitors.NodeTransformer; +import org.zwobble.couscous.types.Type; import org.zwobble.couscous.types.Types; import java.util.List; @@ -11,7 +11,6 @@ import java.util.Optional; import java.util.function.Function; import static org.zwobble.couscous.util.ExtraLists.eagerMap; -import static org.zwobble.couscous.util.ExtraLists.list; public class MethodNode implements Node { public static Builder staticMethod(String name) { @@ -27,6 +26,8 @@ public class MethodNode implements Node { private boolean isStatic = false; private boolean isAbstract = false; private final String name; + private final ImmutableList.Builder<FormalTypeParameterNode> parameters = + ImmutableList.builder(); private final ImmutableList.Builder<FormalArgumentNode> arguments = ImmutableList.builder(); private Type returnType = Types.VOID; @@ -53,6 +54,11 @@ public class MethodNode implements Node { this.isAbstract = true; return this; } + + public Builder typeParameter(FormalTypeParameterNode parameter) { + parameters.add(parameter); + return this; + } public Builder argument(FormalArgumentNode argument) { arguments.add(argument); @@ -84,7 +90,7 @@ public class MethodNode implements Node { annotations.build(), isStatic, name, - list(), + parameters.build(), arguments.build(), returnType, isAbstract ? Optional.empty() : Optional.of(body.build()), |
