diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-08-30 11:32:18 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-08-30 13:28:46 +0100 |
| commit | cfb59a62fbdcbecb3b842e3df0bea3b6d159007c (patch) | |
| tree | cc2a19bd88a58142bd3934c7f7d82f03de06d071 /src | |
| parent | a7d5133ac7cc82e3826f90d2e5f1ca5cd3f08676 (diff) | |
Add explicit visibility to TypeScript AST
Diffstat (limited to 'src')
8 files changed, 93 insertions, 29 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/typescripttypes/TypescriptTypesGenerator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/typescripttypes/TypescriptTypesGenerator.java index 68fe74d..f9ccc92 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/typescripttypes/TypescriptTypesGenerator.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/typescripttypes/TypescriptTypesGenerator.java @@ -111,12 +111,14 @@ public class TypescriptTypesGenerator implements Generator { for (var field : structDefinition.fields().orElse(List.of())) { body.add(new TypescriptClassFieldDeclaration( this.typescriptGenerator.generateFieldName(field.name()), + TypescriptVisibility.PUBLIC, Optional.of(this.typescriptGenerator.generateTypeExpression(field.type().value())), Optional.empty() )); } body.add(new TypescriptClassConstructor( + TypescriptVisibility.PUBLIC, structDefinition.fields().orElse(List.of()).stream() .map(field -> new TypescriptParam( this.typescriptGenerator.generateFieldName(field.name()), diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/TypescriptWriter.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/TypescriptWriter.java index 99ad2e4..cc30112 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/TypescriptWriter.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/TypescriptWriter.java @@ -142,7 +142,8 @@ public class TypescriptWriter implements AutoCloseable { } private void writeClassConstructor(TypescriptClassConstructor constructor) throws IOException { - this.writer.write("constructor("); + this.writeVisibility(constructor.visibility()); + this.writer.write(" constructor("); writeWithSeparator( constructor.params(), @@ -172,6 +173,8 @@ public class TypescriptWriter implements AutoCloseable { private void writeClassFieldDeclaration( TypescriptClassFieldDeclaration fieldDeclaration ) throws IOException { + this.writeVisibility(fieldDeclaration.visibility()); + this.writer.write(" "); this.writeIdentifier(fieldDeclaration.name()); if (fieldDeclaration.type().isPresent()) { @@ -198,6 +201,16 @@ public class TypescriptWriter implements AutoCloseable { } } + // == Visibility == + + private void writeVisibility(TypescriptVisibility visibility) throws IOException { + this.writer.write(switch (visibility) { + case PRIVATE -> "private"; + case PROTECTED -> "protected"; + case PUBLIC -> "public"; + }); + } + // == Expressions == void writeExpression(TypescriptExpression expression) throws IOException { diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptClassConstructor.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptClassConstructor.java index 76fc97c..21d8c90 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptClassConstructor.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptClassConstructor.java @@ -6,51 +6,57 @@ package org.zwobble.hobgoblin.compiler.output.lang.typescript.ast; // Custom area end: org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor imports public record TypescriptClassConstructor( + org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptVisibility visibility, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptParam> params, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptStatement> body ) implements org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassElement { public static org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor.Builder arbitrary() { - return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor.Builder(java.util.List.of(), java.util.List.of()); + return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor.Builder(org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptVisibility.PRIVATE, java.util.List.of(), java.util.List.of()); } public record Builder( + org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptVisibility visibility, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptParam> params, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptStatement> body ) implements org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassElement.Builder { public org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor build() { - return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor(params, body); + return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor(visibility, params, body); + } + + public org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor.Builder withVisibility(org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptVisibility visibility) { + return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor.Builder(visibility, params, body); } public org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor.Builder withParams(java.util.List<org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptParam> params) { - return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor.Builder(params, body); + return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor.Builder(visibility, params, body); } public org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor.Builder addParam(org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptParam param) { var params = new java.util.ArrayList<org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptParam>(this.params); params.add(param); - return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor.Builder(params, body); + return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor.Builder(visibility, params, body); } public org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor.Builder addParam(org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptParam.Builder param) { var params = new java.util.ArrayList<org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptParam>(this.params); params.add(param.build()); - return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor.Builder(params, body); + return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor.Builder(visibility, params, body); } public org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor.Builder withBody(java.util.List<org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptStatement> body) { - return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor.Builder(params, body); + return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor.Builder(visibility, params, body); } public org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor.Builder addBodyElement(org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptStatement bodyElement) { var body = new java.util.ArrayList<org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptStatement>(this.body); body.add(bodyElement); - return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor.Builder(params, body); + return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor.Builder(visibility, params, body); } public org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor.Builder addBodyElement(org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptStatement.Builder bodyElement) { var body = new java.util.ArrayList<org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptStatement>(this.body); body.add(bodyElement.build()); - return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor.Builder(params, body); + return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor.Builder(visibility, params, body); } // Custom area start: org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor.Builder body diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptClassFieldDeclaration.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptClassFieldDeclaration.java index c327724..7d30ea7 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptClassFieldDeclaration.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptClassFieldDeclaration.java @@ -7,52 +7,58 @@ package org.zwobble.hobgoblin.compiler.output.lang.typescript.ast; public record TypescriptClassFieldDeclaration( org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptIdentifier name, + org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptVisibility visibility, java.util.Optional<org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptExpression> type, java.util.Optional<org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptExpression> initialValue ) implements org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassElement { public static org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder arbitrary() { - return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder(org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptIdentifier.arbitrary().build(), java.util.Optional.empty(), java.util.Optional.empty()); + return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder(org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptIdentifier.arbitrary().build(), org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptVisibility.PRIVATE, java.util.Optional.empty(), java.util.Optional.empty()); } public record Builder( org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptIdentifier name, + org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptVisibility visibility, java.util.Optional<org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptExpression> type, java.util.Optional<org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptExpression> initialValue ) implements org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassElement.Builder { public org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration build() { - return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration(name, type, initialValue); + return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration(name, visibility, type, initialValue); } public org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder withName(org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptIdentifier name) { - return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder(name, type, initialValue); + return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder(name, visibility, type, initialValue); } public org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder withName(org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptIdentifier.Builder name) { - return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder(name.build(), type, initialValue); + return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder(name.build(), visibility, type, initialValue); + } + + public org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder withVisibility(org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptVisibility visibility) { + return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder(name, visibility, type, initialValue); } public org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder withType(java.util.Optional<org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptExpression> type) { - return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder(name, type, initialValue); + return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder(name, visibility, type, initialValue); } public org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder withType(org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptExpression type) { - return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder(name, java.util.Optional.of(type), initialValue); + return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder(name, visibility, java.util.Optional.of(type), initialValue); } public org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder withType(org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptExpression.Builder type) { - return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder(name, java.util.Optional.of(type.build()), initialValue); + return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder(name, visibility, java.util.Optional.of(type.build()), initialValue); } public org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder withInitialValue(java.util.Optional<org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptExpression> initialValue) { - return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder(name, type, initialValue); + return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder(name, visibility, type, initialValue); } public org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder withInitialValue(org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptExpression initialValue) { - return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder(name, type, java.util.Optional.of(initialValue)); + return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder(name, visibility, type, java.util.Optional.of(initialValue)); } public org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder withInitialValue(org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptExpression.Builder initialValue) { - return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder(name, type, java.util.Optional.of(initialValue.build())); + return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder(name, visibility, type, java.util.Optional.of(initialValue.build())); } // Custom area start: org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration.Builder body diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptVisibility.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptVisibility.java new file mode 100644 index 0000000..8bf3d67 --- /dev/null +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptVisibility.java @@ -0,0 +1,15 @@ +// Generated by hobgoblin. + +package org.zwobble.hobgoblin.compiler.output.lang.typescript.ast; + +// Custom area start: org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptVisibility imports +// Custom area end: org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptVisibility imports + +public enum TypescriptVisibility { + PRIVATE, + PROTECTED, + PUBLIC + + // Custom area start: org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptVisibility body + // Custom area end: org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptVisibility body +} diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/TypescriptWriterTests.java b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/TypescriptWriterTests.java index bc02855..bca5ab3 100644 --- a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/TypescriptWriterTests.java +++ b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/TypescriptWriterTests.java @@ -76,9 +76,11 @@ public class TypescriptWriterTests { var typescript = TypescriptClassDeclaration.arbitrary() .withName(id("X")) .addBodyElement(TypescriptClassFieldDeclaration.arbitrary() + .withVisibility(TypescriptVisibility.PUBLIC) .withName(id("a")) ) .addBodyElement(TypescriptClassFieldDeclaration.arbitrary() + .withVisibility(TypescriptVisibility.PUBLIC) .withName(id("b")) ) .build(); @@ -87,9 +89,9 @@ public class TypescriptWriterTests { assertThat(string, equalTo(""" class X { - a; + public a; - b; + public b; }""" )); } @@ -146,18 +148,21 @@ public class TypescriptWriterTests { @Test public void emptyClassConstructor() throws IOException { - var typescript = TypescriptClassConstructor.arbitrary().build(); + var typescript = TypescriptClassConstructor.arbitrary() + .withVisibility(TypescriptVisibility.PUBLIC) + .build(); var string = write(writer -> writer.writeClassElement(typescript)); assertThat(string, equalTo(""" - constructor() { + public constructor() { }""")); } @Test public void classConstructorWithParams() throws IOException { var typescript = TypescriptClassConstructor.arbitrary() + .withVisibility(TypescriptVisibility.PUBLIC) .addParam(TypescriptParam.arbitrary() .withName(id("a")) .withType(ref("number")) @@ -171,13 +176,14 @@ public class TypescriptWriterTests { var string = write(writer -> writer.writeClassElement(typescript)); assertThat(string, equalTo(""" - constructor(a: number, b: string) { + public constructor(a: number, b: string) { }""")); } @Test public void classConstructorWithBody() throws IOException { var typescript = TypescriptClassConstructor.arbitrary() + .withVisibility(TypescriptVisibility.PUBLIC) .addBodyElement(TypescriptExpressionStatement.arbitrary().withExpression(num(1))) .addBodyElement(TypescriptExpressionStatement.arbitrary().withExpression(num(2))) .build(); @@ -185,7 +191,7 @@ public class TypescriptWriterTests { var string = write(writer -> writer.writeClassElement(typescript)); assertThat(string, equalTo(""" - constructor() { + public constructor() { 1.0; 2.0; }""")); @@ -196,41 +202,45 @@ public class TypescriptWriterTests { @Test public void classFieldDeclarationWithoutInitialValue() throws IOException { var typescript = TypescriptClassFieldDeclaration.arbitrary() + .withVisibility(TypescriptVisibility.PUBLIC) .withName(id("a")) .build(); var string = write(writer -> writer.writeClassElement(typescript)); - assertThat(string, equalTo("a;")); + assertThat(string, equalTo("public a;")); } @Test public void classFieldDeclarationWithExplicitType() throws IOException { var typescript = TypescriptClassFieldDeclaration.arbitrary() + .withVisibility(TypescriptVisibility.PUBLIC) .withName(id("a")) .withType(ref("number")) .build(); var string = write(writer -> writer.writeClassElement(typescript)); - assertThat(string, equalTo("a: number;")); + assertThat(string, equalTo("public a: number;")); } @Test public void classFieldDeclarationWithInitialValue() throws IOException { var typescript = TypescriptClassFieldDeclaration.arbitrary() + .withVisibility(TypescriptVisibility.PUBLIC) .withName(id("a")) .withInitialValue(num(42)) .build(); var string = write(writer -> writer.writeClassElement(typescript)); - assertThat(string, equalTo("a = 42.0;")); + assertThat(string, equalTo("public a = 42.0;")); } @Test public void classFieldDeclarationWithTypeAndInitialValue() throws IOException { var typescript = TypescriptClassFieldDeclaration.arbitrary() + .withVisibility(TypescriptVisibility.PUBLIC) .withName(id("a")) .withType(ref("number")) .withInitialValue(num(42)) @@ -238,7 +248,7 @@ public class TypescriptWriterTests { var string = write(writer -> writer.writeClassElement(typescript)); - assertThat(string, equalTo("a: number = 42.0;")); + assertThat(string, equalTo("public a: number = 42.0;")); } private static TypescriptRef ref(String value) { diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptClassConstructorMatcher.java b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptClassConstructorMatcher.java index 7157675..5110453 100644 --- a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptClassConstructorMatcher.java +++ b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptClassConstructorMatcher.java @@ -30,6 +30,12 @@ public final class TypescriptClassConstructorMatcher implements org.zwobble.prec return org.zwobble.precisely.Matchers.instanceOf(org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor.class, this.submatchers); } + public org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructorMatcher withVisibility(org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptVisibility> visibility) { + var submatchers = new java.util.ArrayList<org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor>>(this.submatchers); + submatchers.add(org.zwobble.precisely.Matchers.has("visibility", org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor::visibility, (org.zwobble.precisely.Matcher) visibility)); + return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructorMatcher(submatchers); + } + public org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructorMatcher withParams(org.zwobble.precisely.Matcher<? super java.util.List<org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptParam>> params) { var submatchers = new java.util.ArrayList<org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor>>(this.submatchers); submatchers.add(org.zwobble.precisely.Matchers.has("params", org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassConstructor::params, (org.zwobble.precisely.Matcher) params)); diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptClassFieldDeclarationMatcher.java b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptClassFieldDeclarationMatcher.java index 3942fb4..718e4ae 100644 --- a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptClassFieldDeclarationMatcher.java +++ b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptClassFieldDeclarationMatcher.java @@ -36,6 +36,12 @@ public final class TypescriptClassFieldDeclarationMatcher implements org.zwobble return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclarationMatcher(submatchers); } + public org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclarationMatcher withVisibility(org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptVisibility> visibility) { + var submatchers = new java.util.ArrayList<org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration>>(this.submatchers); + submatchers.add(org.zwobble.precisely.Matchers.has("visibility", org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration::visibility, (org.zwobble.precisely.Matcher) visibility)); + return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclarationMatcher(submatchers); + } + public org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclarationMatcher withType(org.zwobble.precisely.Matcher<? super java.util.Optional<org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptExpression>> type) { var submatchers = new java.util.ArrayList<org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration>>(this.submatchers); submatchers.add(org.zwobble.precisely.Matchers.has("type", org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptClassFieldDeclaration::type, (org.zwobble.precisely.Matcher) type)); |
