diff --git a/src/main/java/com/google/api/generator/engine/writer/ImportWriterVisitor.java b/src/main/java/com/google/api/generator/engine/writer/ImportWriterVisitor.java index 0967cea087..b3b2c9d997 100644 --- a/src/main/java/com/google/api/generator/engine/writer/ImportWriterVisitor.java +++ b/src/main/java/com/google/api/generator/engine/writer/ImportWriterVisitor.java @@ -183,6 +183,7 @@ public void visit(TernaryExpr ternaryExpr) { @Override public void visit(VariableExpr variableExpr) { variableExpr.variable().type().accept(this); + annotations(variableExpr.annotations()); if (variableExpr.exprReferenceExpr() != null) { variableExpr.exprReferenceExpr().accept(this); } diff --git a/src/test/java/com/google/api/generator/engine/writer/ImportWriterVisitorTest.java b/src/test/java/com/google/api/generator/engine/writer/ImportWriterVisitorTest.java index 07be47a996..bd8d62afb7 100644 --- a/src/test/java/com/google/api/generator/engine/writer/ImportWriterVisitorTest.java +++ b/src/test/java/com/google/api/generator/engine/writer/ImportWriterVisitorTest.java @@ -363,6 +363,32 @@ public void writeVariableExprImports_nestedReference() { writerVisitor.write()); } + @Test + public void writeVariableExprImports_withAnnotations() { + Variable variable = + Variable.builder() + .setName("expr") + .setType(TypeNode.withReference(ConcreteReference.withClazz(Expr.class))) + .build(); + + VariableExpr variableExpr = + VariableExpr.builder() + .setVariable(variable) + .setIsDecl(true) + .setAnnotations( + Arrays.asList( + AnnotationNode.withType( + TypeNode.withReference(ConcreteReference.withClazz(Generated.class))))) + .build(); + + variableExpr.accept(writerVisitor); + assertEquals( + LineFormatter.lines( + "import com.google.api.generator.engine.ast.Expr;\n", + "import javax.annotation.Generated;\n\n"), + writerVisitor.write()); + } + @Test public void writeAnonymousClassExprImports() { // [Constructing] Function, MethodDefinition>