Skip to content

Commit f5d5524

Browse files
authored
fix(ast): add import generation for annotations on VariableExpr (#1076)
* This PR is a follow-up patch to #1012 which added support for annotations on VariableExpr. It updates ImportWriterVisitor so that import generation also covers these annotations.
1 parent 7941431 commit f5d5524

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

src/main/java/com/google/api/generator/engine/writer/ImportWriterVisitor.java

+1
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@ public void visit(TernaryExpr ternaryExpr) {
183183
@Override
184184
public void visit(VariableExpr variableExpr) {
185185
variableExpr.variable().type().accept(this);
186+
annotations(variableExpr.annotations());
186187
if (variableExpr.exprReferenceExpr() != null) {
187188
variableExpr.exprReferenceExpr().accept(this);
188189
}

src/test/java/com/google/api/generator/engine/writer/ImportWriterVisitorTest.java

+26
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,32 @@ public void writeVariableExprImports_nestedReference() {
363363
writerVisitor.write());
364364
}
365365

366+
@Test
367+
public void writeVariableExprImports_withAnnotations() {
368+
Variable variable =
369+
Variable.builder()
370+
.setName("expr")
371+
.setType(TypeNode.withReference(ConcreteReference.withClazz(Expr.class)))
372+
.build();
373+
374+
VariableExpr variableExpr =
375+
VariableExpr.builder()
376+
.setVariable(variable)
377+
.setIsDecl(true)
378+
.setAnnotations(
379+
Arrays.asList(
380+
AnnotationNode.withType(
381+
TypeNode.withReference(ConcreteReference.withClazz(Generated.class)))))
382+
.build();
383+
384+
variableExpr.accept(writerVisitor);
385+
assertEquals(
386+
LineFormatter.lines(
387+
"import com.google.api.generator.engine.ast.Expr;\n",
388+
"import javax.annotation.Generated;\n\n"),
389+
writerVisitor.write());
390+
}
391+
366392
@Test
367393
public void writeAnonymousClassExprImports() {
368394
// [Constructing] Function<List<IOException>, MethodDefinition>

0 commit comments

Comments
 (0)