summaryrefslogtreecommitdiff
path: root/src/main/java/org
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-08-10 10:47:26 +0100
committerMichael Williamson <mike@zwobble.org>2026-08-10 10:47:26 +0100
commit4b8dd80f18ae1e4bad0c61d55de685d69dfdbe1c (patch)
treee9987bd8145872c75714ad0fd43ac74b5176144f /src/main/java/org
parent608e7b2be13c1f79c0ea3fc9b38fdf217507227b (diff)
Add type parameters to Java method declarations
Diffstat (limited to 'src/main/java/org')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javapreciselymatchers/JavaPreciselyMatchersGenerator.java5
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java8
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java10
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriter.java5
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaMethodDeclaration.java52
5 files changed, 65 insertions, 15 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javapreciselymatchers/JavaPreciselyMatchersGenerator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javapreciselymatchers/JavaPreciselyMatchersGenerator.java
index dfded67..10b85f4 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javapreciselymatchers/JavaPreciselyMatchersGenerator.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javapreciselymatchers/JavaPreciselyMatchersGenerator.java
@@ -102,6 +102,7 @@ public class JavaPreciselyMatchersGenerator implements Generator {
this.javaGenerator.generateFieldName("is" + lowerCamelCaseToUpperCamelCase(structDefinition.name())),
JavaVisibility.PUBLIC,
JavaMemberKind.STATIC,
+ List.of(),
javaMatcherTypeRef,
List.of(),
List.of(),
@@ -144,6 +145,7 @@ public class JavaPreciselyMatchersGenerator implements Generator {
JavaIdentifier.of("match"),
JavaVisibility.PUBLIC,
JavaMemberKind.INSTANCE,
+ List.of(),
MATCH_RESULT_REF,
List.of(new JavaParam(JavaTypeRef.OBJECT, JavaIdentifier.of("actual"))),
List.of(),
@@ -161,6 +163,7 @@ public class JavaPreciselyMatchersGenerator implements Generator {
JavaIdentifier.of("describe"),
JavaVisibility.PUBLIC,
JavaMemberKind.INSTANCE,
+ List.of(),
TEXT_TREE_REF,
List.of(),
List.of(),
@@ -178,6 +181,7 @@ public class JavaPreciselyMatchersGenerator implements Generator {
JavaIdentifier.of("toMatcher"),
JavaVisibility.PRIVATE,
JavaMemberKind.INSTANCE,
+ List.of(),
genericMatcherRef(JavaTypeRef.OBJECT),
List.of(),
List.of(),
@@ -203,6 +207,7 @@ public class JavaPreciselyMatchersGenerator implements Generator {
this.javaGenerator.generateFieldName("with" + lowerCamelCaseToUpperCamelCase(field.name())),
JavaVisibility.PUBLIC,
JavaMemberKind.INSTANCE,
+ List.of(),
javaMatcherTypeRef,
List.of(
new JavaParam(genericMatcherRef(JavaTypeArg.superType(javaFieldTypeRef)), javaFieldName)
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java
index 4dab4da..4f4f0b9 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java
@@ -102,6 +102,7 @@ public class JavaTransient0Generator implements Generator {
JavaIdentifier.of("equals"),
JavaVisibility.PUBLIC,
JavaMemberKind.INSTANCE,
+ List.of(),
JavaTypeRef.BOOLEAN,
List.of(new JavaParam(JavaTypeRef.OBJECT, other)),
List.of(),
@@ -179,6 +180,7 @@ public class JavaTransient0Generator implements Generator {
JavaIdentifier.of("encode"),
JavaVisibility.PUBLIC,
JavaMemberKind.INSTANCE,
+ List.of(),
JavaTypeRef.VOID,
generateEncodeParams(JavaTypeRef.local(JavaIdentifier.of("T"))),
List.of(JavaTypeRef.IO_EXCEPTION),
@@ -219,6 +221,7 @@ public class JavaTransient0Generator implements Generator {
JavaIdentifier.of("decode"),
JavaVisibility.PUBLIC,
JavaMemberKind.INSTANCE,
+ List.of(),
JavaTypeRef.local(JavaIdentifier.of("T")),
generateDecodeParams(),
List.of(JavaTypeRef.IO_EXCEPTION),
@@ -802,6 +805,7 @@ public class JavaTransient0Generator implements Generator {
encodeMethodName(type),
JavaVisibility.PUBLIC,
JavaMemberKind.STATIC,
+ List.of(),
JavaTypeRef.VOID,
generateEncodeParams(javaTypeRef),
List.of(JavaTypeRef.IO_EXCEPTION),
@@ -823,6 +827,7 @@ public class JavaTransient0Generator implements Generator {
decodeMethodName(type),
JavaVisibility.PUBLIC,
JavaMemberKind.STATIC,
+ List.of(),
javaTypeRef,
generateDecodeParams(),
List.of(JavaTypeRef.IO_EXCEPTION),
@@ -919,6 +924,7 @@ public class JavaTransient0Generator implements Generator {
generateEncodeConstructedTypeMethodName(constructedTypeIndex),
JavaVisibility.PRIVATE,
JavaMemberKind.STATIC,
+ List.of(),
JavaTypeRef.VOID,
generateEncodeParams(this.javaGenerator.generateTypeRef(constructedType)),
List.of(JavaTypeRef.IO_EXCEPTION),
@@ -1040,6 +1046,7 @@ public class JavaTransient0Generator implements Generator {
generateDecodeConstructedTypeMethodName(constructedTypeIndex),
JavaVisibility.PRIVATE,
JavaMemberKind.STATIC,
+ List.of(),
this.javaGenerator.generateTypeRef(constructedType),
generateDecodeParams(),
List.of(JavaTypeRef.IO_EXCEPTION),
@@ -1452,6 +1459,7 @@ public class JavaTransient0Generator implements Generator {
JavaIdentifier.of("hashCode"),
JavaVisibility.PUBLIC,
JavaMemberKind.INSTANCE,
+ List.of(),
JavaTypeRef.INT,
List.of(),
List.of(),
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java
index 270683d..6d1e4a8 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java
@@ -175,6 +175,7 @@ public class JavaTypesGenerator implements Generator {
ARBITRARY_METHOD_NAME,
JavaVisibility.PUBLIC,
JavaMemberKind.STATIC,
+ List.of(),
builderJavaTypeRef,
List.of(),
List.of(),
@@ -249,6 +250,7 @@ public class JavaTypesGenerator implements Generator {
BUILD_METHOD_NAME,
JavaVisibility.PUBLIC,
JavaMemberKind.INSTANCE,
+ List.of(),
generateTypeRef(structType, context),
List.of(),
List.of(),
@@ -295,6 +297,7 @@ public class JavaTypesGenerator implements Generator {
withMethodName,
JavaVisibility.PUBLIC,
JavaMemberKind.INSTANCE,
+ List.of(),
builderJavaTypeRef,
List.of(
new JavaParam(generateTypeRef(fieldType, context), javaFieldName)
@@ -315,6 +318,7 @@ public class JavaTypesGenerator implements Generator {
withMethodName,
JavaVisibility.PUBLIC,
JavaMemberKind.INSTANCE,
+ List.of(),
builderJavaTypeRef,
List.of(
new JavaParam(fieldBuilderTypeRef.get(), javaFieldName)
@@ -354,6 +358,7 @@ public class JavaTypesGenerator implements Generator {
addElementMethodName,
JavaVisibility.PUBLIC,
JavaMemberKind.INSTANCE,
+ List.of(),
builderJavaTypeRef,
List.of(
new JavaParam(javaElementUnboxedType, javaElementName)
@@ -387,6 +392,7 @@ public class JavaTypesGenerator implements Generator {
addElementMethodName,
JavaVisibility.PUBLIC,
JavaMemberKind.INSTANCE,
+ List.of(),
builderJavaTypeRef,
List.of(
new JavaParam(elementBuilderTypeRef.get(), javaElementName)
@@ -426,6 +432,7 @@ public class JavaTypesGenerator implements Generator {
withMethodName,
JavaVisibility.PUBLIC,
JavaMemberKind.INSTANCE,
+ List.of(),
builderJavaTypeRef,
List.of(
new JavaParam(javaElementType, javaFieldName)
@@ -456,6 +463,7 @@ public class JavaTypesGenerator implements Generator {
withMethodName,
JavaVisibility.PUBLIC,
JavaMemberKind.INSTANCE,
+ List.of(),
builderJavaTypeRef,
List.of(
new JavaParam(elementBuilderTypeRef.get(), javaFieldName)
@@ -496,6 +504,7 @@ public class JavaTypesGenerator implements Generator {
generateFieldName(field.name()),
JavaVisibility.PUBLIC,
JavaMemberKind.INSTANCE,
+ List.of(),
generateTypeRef(field.type().value(), context),
List.of(),
List.of(),
@@ -529,6 +538,7 @@ public class JavaTypesGenerator implements Generator {
BUILD_METHOD_NAME,
JavaVisibility.PUBLIC,
JavaMemberKind.INSTANCE,
+ List.of(),
generateTypeRef(sumDefinition.type(), context),
List.of(),
List.of(),
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriter.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriter.java
index 721cd14..74c7a2b 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriter.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriter.java
@@ -345,6 +345,11 @@ public class JavaWriter implements AutoCloseable {
}
}
+ if (!method.typeParameters().isEmpty()) {
+ this.writeTypeParameters(method.typeParameters());
+ this.writer.write(" ");
+ }
+
writeTypeRef(method.returnType());
this.writer.write(" ");
this.writeIdentifier(method.name());
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaMethodDeclaration.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaMethodDeclaration.java
index df614c9..c1658c0 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaMethodDeclaration.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaMethodDeclaration.java
@@ -5,88 +5,108 @@ package org.zwobble.hobgoblin.compiler.output.lang.java.ast;
// Custom area start: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration imports
// Custom area end: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration imports
+import java.util.List;
+
public record JavaMethodDeclaration(
org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier name,
org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaVisibility visibility,
org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMemberKind kind,
+ java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeParameter> typeParameters,
org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef returnType,
java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaParam> params,
java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef> throws_,
java.util.Optional<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaBlock> body
) implements org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration {
public static org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder arbitrary() {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier.arbitrary().build(), org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaVisibility.PUBLIC, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMemberKind.STATIC, org.zwobble.hobgoblin.compiler.output.lang.java.ast.HobgoblinNativeAst.arbitraryJavaTypeRef(), java.util.List.of(), java.util.List.of(), java.util.Optional.empty());
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier.arbitrary().build(), org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaVisibility.PUBLIC, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMemberKind.STATIC, java.util.List.of(), org.zwobble.hobgoblin.compiler.output.lang.java.ast.HobgoblinNativeAst.arbitraryJavaTypeRef(), java.util.List.of(), java.util.List.of(), java.util.Optional.empty());
}
public record Builder(
org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier name,
org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaVisibility visibility,
org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMemberKind kind,
+ java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeParameter> typeParameters,
org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef returnType,
java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaParam> params,
java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef> throws_,
java.util.Optional<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaBlock> body
) implements org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration.Builder {
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration build() {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration(name, visibility, kind, returnType, params, throws_, body);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration(name, visibility, kind, typeParameters, returnType, params, throws_, body);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder withName(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier name) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name, visibility, kind, returnType, params, throws_, body);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name, visibility, kind, typeParameters, returnType, params, throws_, body);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder withName(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier.Builder name) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name.build(), visibility, kind, returnType, params, throws_, body);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name.build(), visibility, kind, typeParameters, returnType, params, throws_, body);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder withVisibility(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaVisibility visibility) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name, visibility, kind, returnType, params, throws_, body);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name, visibility, kind, typeParameters, returnType, params, throws_, body);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder withKind(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMemberKind kind) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name, visibility, kind, returnType, params, throws_, body);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name, visibility, kind, typeParameters, returnType, params, throws_, body);
+ }
+
+ public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder withTypeParameters(java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeParameter> typeParameters) {
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name, visibility, kind, typeParameters, returnType, params, throws_, body);
+ }
+
+ public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder addTypeParameter(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeParameter typeParameter) {
+ var typeParameters = new java.util.ArrayList<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeParameter>(this.typeParameters);
+ typeParameters.add(typeParameter);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name, visibility, kind, typeParameters, returnType, params, throws_, body);
+ }
+
+ public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder addTypeParameter(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeParameter.Builder typeParameter) {
+ var typeParameters = new java.util.ArrayList<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeParameter>(this.typeParameters);
+ typeParameters.add(typeParameter.build());
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name, visibility, kind, typeParameters, returnType, params, throws_, body);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder withReturnType(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef returnType) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name, visibility, kind, returnType, params, throws_, body);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name, visibility, kind, typeParameters, returnType, params, throws_, body);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder withParams(java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaParam> params) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name, visibility, kind, returnType, params, throws_, body);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name, visibility, kind, typeParameters, returnType, params, throws_, body);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder addParam(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaParam param) {
var params = new java.util.ArrayList<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaParam>(this.params);
params.add(param);
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name, visibility, kind, returnType, params, throws_, body);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name, visibility, kind, typeParameters, returnType, params, throws_, body);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder addParam(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaParam.Builder param) {
var params = new java.util.ArrayList<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaParam>(this.params);
params.add(param.build());
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name, visibility, kind, returnType, params, throws_, body);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name, visibility, kind, typeParameters, returnType, params, throws_, body);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder withThrows(java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef> throws_) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name, visibility, kind, returnType, params, throws_, body);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name, visibility, kind, typeParameters, returnType, params, throws_, body);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder addThrow(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef throw_) {
var throws_ = new java.util.ArrayList<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef>(this.throws_);
throws_.add(throw_);
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name, visibility, kind, returnType, params, throws_, body);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name, visibility, kind, typeParameters, returnType, params, throws_, body);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder withBody(java.util.Optional<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaBlock> body) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name, visibility, kind, returnType, params, throws_, body);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name, visibility, kind, typeParameters, returnType, params, throws_, body);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder withBody(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaBlock body) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name, visibility, kind, returnType, params, throws_, java.util.Optional.of(body));
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name, visibility, kind, typeParameters, returnType, params, throws_, java.util.Optional.of(body));
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder withBody(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaBlock.Builder body) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name, visibility, kind, returnType, params, throws_, java.util.Optional.of(body.build()));
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(name, visibility, kind, typeParameters, returnType, params, throws_, java.util.Optional.of(body.build()));
}
// Custom area start: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder body
@@ -98,6 +118,7 @@ public record JavaMethodDeclaration(
JavaIdentifier name,
JavaVisibility visibility,
JavaMemberKind kind,
+ List<JavaTypeParameter> typeParameters,
JavaTypeRef returnType,
java.util.List<JavaParam> params,
java.util.List<JavaTypeRef> throws_,
@@ -107,6 +128,7 @@ public record JavaMethodDeclaration(
name,
visibility,
kind,
+ typeParameters,
returnType,
params,
throws_,