Refactor rewriting in kotlininfo into functions and properties

Change-Id: I8a94c3f89d5225f910d32b02a837247aeb566e87
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinInfo.java
index 967cf05..deba026 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinInfo.java
@@ -120,8 +120,30 @@
     assert clazz != null;
 
     KmDeclarationContainer kmDeclarationContainer = getDeclarations();
-    Map<String, KmPropertyGroup.Builder> propertyGroupBuilderMap = new HashMap<>();
+    rewriteFunctions(appView, lens, kmDeclarationContainer.getFunctions());
+    rewriteProperties(appView, lens, kmDeclarationContainer.getProperties());
+  }
 
+  private void rewriteFunctions(
+      AppView<AppInfoWithLiveness> appView, NamingLens lens, List<KmFunction> functions) {
+    functions.clear();
+    for (DexEncodedMethod method : clazz.methods()) {
+      if (method.isInitializer()) {
+        continue;
+      }
+      if (method.isKotlinFunction() || method.isKotlinExtensionFunction()) {
+        KmFunction function = toRenamedKmFunction(method, appView, lens);
+        if (function != null) {
+          functions.add(function);
+        }
+      }
+      // TODO(b/151194869): What should we do for methods that fall into this category---no mark?
+    }
+  }
+
+  private void rewriteProperties(
+      AppView<AppInfoWithLiveness> appView, NamingLens lens, List<KmProperty> properties) {
+    Map<String, KmPropertyGroup.Builder> propertyGroupBuilderMap = new HashMap<>();
     // Backing fields for a companion object are declared in its host class.
     Iterable<DexEncodedField> fields = clazz.fields();
     Predicate<DexEncodedField> backingFieldTester = DexEncodedField::isKotlinBackingField;
@@ -132,7 +154,6 @@
         backingFieldTester = DexEncodedField::isKotlinBackingFieldForCompanionObject;
       }
     }
-
     for (DexEncodedField field : fields) {
       if (backingFieldTester.test(field)) {
         String name = field.getKotlinMemberInfo().propertyName;
@@ -144,21 +165,10 @@
         builder.foundBackingField(field);
       }
     }
-
-    List<KmFunction> functions = kmDeclarationContainer.getFunctions();
-    functions.clear();
     for (DexEncodedMethod method : clazz.methods()) {
       if (method.isInitializer()) {
         continue;
       }
-
-      if (method.isKotlinFunction() || method.isKotlinExtensionFunction()) {
-        KmFunction function = toRenamedKmFunction(method, appView, lens);
-        if (function != null) {
-          functions.add(function);
-        }
-        continue;
-      }
       if (method.isKotlinProperty() || method.isKotlinExtensionProperty()) {
         String name = method.getKotlinMemberInfo().propertyName;
         assert name != null;
@@ -190,13 +200,9 @@
           default:
             throw new Unreachable("Not a Kotlin property: " + method.getKotlinMemberInfo());
         }
-        continue;
       }
-
       // TODO(b/151194869): What should we do for methods that fall into this category---no mark?
     }
-
-    List<KmProperty> properties = kmDeclarationContainer.getProperties();
     properties.clear();
     for (KmPropertyGroup.Builder builder : propertyGroupBuilderMap.values()) {
       KmPropertyGroup group = builder.build();