From c4bfbeff6e2594f00bd662b29bb7745a77881d29 Mon Sep 17 00:00:00 2001 From: Sarvesh Athawale Date: Mon, 9 Apr 2018 07:29:59 -0700 Subject: [PATCH] Remove spurious leading space from AutoValue_Foo generated source. Closes https://github.com/google/auto/pull/623 Fixes https://github.com/google/auto/issues/622 RELNOTES=n/a ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=192124429 --- .../com/google/auto/value/processor/AutoValueProcessor.java | 1 + .../google/auto/value/processor/AutoValueTemplateVars.java | 6 ++++++ .../main/java/com/google/auto/value/processor/autovalue.vm | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/value/src/main/java/com/google/auto/value/processor/AutoValueProcessor.java b/value/src/main/java/com/google/auto/value/processor/AutoValueProcessor.java index e9e9578a43..e063ef2182 100644 --- a/value/src/main/java/com/google/auto/value/processor/AutoValueProcessor.java +++ b/value/src/main/java/com/google/auto/value/processor/AutoValueProcessor.java @@ -204,6 +204,7 @@ void processType(TypeElement type) { String subclass = generatedSubclassName(type, subclassDepth); vars.subclass = TypeSimplifier.simpleNameOf(subclass); vars.isFinal = (subclassDepth == 0); + vars.modifiers = vars.isFinal ? "final " : "abstract "; String text = vars.toText(); text = TypeEncoder.decode(text, processingEnv, vars.pkg, type.asType()); diff --git a/value/src/main/java/com/google/auto/value/processor/AutoValueTemplateVars.java b/value/src/main/java/com/google/auto/value/processor/AutoValueTemplateVars.java index 2e26762468..2cf8a728b1 100644 --- a/value/src/main/java/com/google/auto/value/processor/AutoValueTemplateVars.java +++ b/value/src/main/java/com/google/auto/value/processor/AutoValueTemplateVars.java @@ -73,6 +73,12 @@ class AutoValueTemplateVars extends AutoValueOrOneOfTemplateVars { */ Boolean isFinal = false; + /** + * The modifiers (for example {@code final} or {@code abstract}) for the generated subclass, + * followed by a space if they are not empty. + */ + String modifiers; + /** * The name of the builder type as it should appear in source code, or empty if there is no * builder type. If class {@code Address} contains {@code @AutoValue.Builder} class Builder diff --git a/value/src/main/java/com/google/auto/value/processor/autovalue.vm b/value/src/main/java/com/google/auto/value/processor/autovalue.vm index 3eab6f09f6..cf79193de9 100644 --- a/value/src/main/java/com/google/auto/value/processor/autovalue.vm +++ b/value/src/main/java/com/google/auto/value/processor/autovalue.vm @@ -44,7 +44,7 @@ $a #else // Generated by com.google.auto.value.processor.AutoValueProcessor #end -#if ($isFinal) final #else abstract #end class $subclass$formalTypes extends $origClass$actualTypes { +${modifiers}class $subclass$formalTypes extends $origClass$actualTypes { ## Fields