From fe83786a46265c0b0893d1c8db8fab5c63f763c9 Mon Sep 17 00:00:00 2001
From: Janne Mareike Koschinski <janne@kuschku.de>
Date: Mon, 22 Feb 2021 21:56:01 +0100
Subject: [PATCH] Ensure all generated code is properly marked as generated

---
 .../libquassel/annotations/Generated.kt        | 18 +++++++++++++++++-
 .../generator/visitors/RpcModelProcessor.kt    | 12 +++++++++++-
 2 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/libquassel-annotations/src/main/kotlin/de/justjanne/libquassel/annotations/Generated.kt b/libquassel-annotations/src/main/kotlin/de/justjanne/libquassel/annotations/Generated.kt
index dabaf3e..e5b05dd 100644
--- a/libquassel-annotations/src/main/kotlin/de/justjanne/libquassel/annotations/Generated.kt
+++ b/libquassel-annotations/src/main/kotlin/de/justjanne/libquassel/annotations/Generated.kt
@@ -13,5 +13,21 @@ package de.justjanne.libquassel.annotations
 /**
  * Used to mark inline functions as generated for jacoco
  */
-@Retention(AnnotationRetention.SOURCE)
+@Retention(AnnotationRetention.RUNTIME)
+@Target(
+  AnnotationTarget.CLASS,
+  AnnotationTarget.ANNOTATION_CLASS,
+  AnnotationTarget.TYPE_PARAMETER,
+  AnnotationTarget.PROPERTY,
+  AnnotationTarget.FIELD,
+  AnnotationTarget.LOCAL_VARIABLE,
+  AnnotationTarget.VALUE_PARAMETER,
+  AnnotationTarget.CONSTRUCTOR,
+  AnnotationTarget.FUNCTION,
+  AnnotationTarget.PROPERTY_GETTER,
+  AnnotationTarget.PROPERTY_SETTER,
+  AnnotationTarget.TYPE,
+  AnnotationTarget.FILE,
+  AnnotationTarget.TYPEALIAS,
+)
 annotation class Generated
diff --git a/libquassel-generator/src/main/kotlin/de/justjanne/libquassel/generator/visitors/RpcModelProcessor.kt b/libquassel-generator/src/main/kotlin/de/justjanne/libquassel/generator/visitors/RpcModelProcessor.kt
index 5c99df9..0567b96 100644
--- a/libquassel-generator/src/main/kotlin/de/justjanne/libquassel/generator/visitors/RpcModelProcessor.kt
+++ b/libquassel-generator/src/main/kotlin/de/justjanne/libquassel/generator/visitors/RpcModelProcessor.kt
@@ -42,19 +42,25 @@ class RpcModelProcessor : RpcModelVisitor<ProtocolSide, KotlinModel?> {
           TYPENAME_QVARIANT_INTOORTHROW.packageName,
           TYPENAME_QVARIANT_INTOORTHROW.simpleName
         )
+        .addAnnotation(TYPENAME_GENERATED)
         .addType(
           TypeSpec.objectBuilder(name.simpleName)
             .addSuperinterface(TYPENAME_INVOKER.parameterizedBy(model.name))
+            .addAnnotation(TYPENAME_GENERATED)
             .addProperty(
               PropertySpec.builder(
                 "className",
                 String::class.asTypeName(),
                 KModifier.OVERRIDE
-              ).initializer("\"${model.rpcName}\"").build()
+              )
+                .initializer("\"${model.rpcName}\"")
+                .addAnnotation(TYPENAME_GENERATED)
+                .build()
             )
             .addFunction(
               FunSpec.builder("invoke")
                 .addModifiers(KModifier.OVERRIDE, KModifier.OPERATOR)
+                .addAnnotation(TYPENAME_GENERATED)
                 .addParameter(
                   ParameterSpec.builder(
                     "on",
@@ -144,6 +150,10 @@ class RpcModelProcessor : RpcModelVisitor<ProtocolSide, KotlinModel?> {
       "de.justjanne.libquassel.protocol.variant",
       "intoOrThrow"
     )
+    private val TYPENAME_GENERATED = ClassName(
+      "de.justjanne.libquassel.annotations",
+      "Generated"
+    )
     private val TYPENAME_ANY = ANY.copy(nullable = true)
 
     init {
-- 
GitLab