Remove deprecation in kotlin constructor model

Bug: b/341991457
Change-Id: Iab36b2a05ff688ed0006daf2ed0e68ad8dfa3215
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinConstructorInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinConstructorInfo.java
index 28de1a1..44fb122 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinConstructorInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinConstructorInfo.java
@@ -20,45 +20,41 @@
 // Holds information about a KmConstructor object.
 public class KotlinConstructorInfo implements KotlinMethodLevelInfo {
 
-  // Information from original KmValueParameter(s) if available.
-  private final int flags;
+  // Information from original constructor.
+  private final KmConstructor kmConstructor;
   // Information about the value parameters.
   private final List<KotlinValueParameterInfo> valueParameters;
   // Information about version requirements.
-  private final KotlinVersionRequirementInfo versionRequirements;
-  // Information about the signature.
   private final KotlinJvmMethodSignatureInfo signature;
 
   private KotlinConstructorInfo(
-      int flags,
+      KmConstructor kmConstructor,
       List<KotlinValueParameterInfo> valueParameters,
-      KotlinVersionRequirementInfo versionRequirements,
       KotlinJvmMethodSignatureInfo signature) {
-    this.flags = flags;
+    this.kmConstructor = kmConstructor;
     this.valueParameters = valueParameters;
-    this.versionRequirements = versionRequirements;
     this.signature = signature;
   }
 
   public static KotlinConstructorInfo create(
       KmConstructor kmConstructor, DexItemFactory factory, Reporter reporter) {
     return new KotlinConstructorInfo(
-        kmConstructor.getFlags(),
+        kmConstructor,
         KotlinValueParameterInfo.create(kmConstructor.getValueParameters(), factory, reporter),
-        KotlinVersionRequirementInfo.create(kmConstructor.getVersionRequirements()),
         KotlinJvmMethodSignatureInfo.create(JvmExtensionsKt.getSignature(kmConstructor), factory));
   }
 
   boolean rewrite(KmClass kmClass, DexEncodedMethod method, AppView<?> appView) {
     // Note that JvmExtensionsKt.setSignature does not have an overload for KmConstructorVisitor,
     // thus we rely on creating the KmConstructor manually.
-    // TODO(b/154348683): Check for special flags to pass in.
-    KmConstructor kmConstructor = new KmConstructor(flags);
+    KmConstructor rewrittenKmConstructor = new KmConstructor();
+    KotlinFlagUtils.copyAllFlags(kmConstructor, rewrittenKmConstructor);
     boolean rewritten = false;
     if (signature != null) {
       rewritten =
           signature.rewrite(
-              rewrittenSignature -> JvmExtensionsKt.setSignature(kmConstructor, rewrittenSignature),
+              rewrittenSignature ->
+                  JvmExtensionsKt.setSignature(rewrittenKmConstructor, rewrittenSignature),
               method,
               appView);
     }
@@ -66,10 +62,10 @@
         rewriteList(
             appView,
             valueParameters,
-            kmConstructor.getValueParameters(),
+            rewrittenKmConstructor.getValueParameters(),
             KotlinValueParameterInfo::rewrite);
-    rewritten |= versionRequirements.rewrite(kmConstructor.getVersionRequirements()::addAll);
-    kmClass.getConstructors().add(kmConstructor);
+    rewrittenKmConstructor.getVersionRequirements().addAll(kmConstructor.getVersionRequirements());
+    kmClass.getConstructors().add(rewrittenKmConstructor);
     return rewritten;
   }
 
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinFlagUtils.java b/src/main/java/com/android/tools/r8/kotlin/KotlinFlagUtils.java
index 24b7ee9..dcaca6f 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinFlagUtils.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinFlagUtils.java
@@ -6,6 +6,7 @@
 
 import kotlin.metadata.Attributes;
 import kotlin.metadata.KmClass;
+import kotlin.metadata.KmConstructor;
 import kotlin.metadata.KmProperty;
 import kotlin.metadata.KmPropertyAccessorAttributes;
 import kotlin.metadata.jvm.JvmAttributes;
@@ -56,4 +57,11 @@
     JvmAttributes.setHasMethodBodiesInInterface(
         dest, JvmAttributes.getHasMethodBodiesInInterface(src));
   }
+
+  static void copyAllFlags(KmConstructor src, KmConstructor dest) {
+    Attributes.setHasAnnotations(dest, Attributes.getHasAnnotations(src));
+    Attributes.setVisibility(dest, Attributes.getVisibility(src));
+    Attributes.setSecondary(dest, Attributes.isSecondary(src));
+    Attributes.setHasNonStableParameterNames(dest, Attributes.getHasNonStableParameterNames(src));
+  }
 }