Remove policy for source classes with final instance fields
Change-Id: I15ab81672a305d649c1603901093f96cba276765
diff --git a/src/main/java/com/android/tools/r8/verticalclassmerging/VerticalClassMergerPolicyExecutor.java b/src/main/java/com/android/tools/r8/verticalclassmerging/VerticalClassMergerPolicyExecutor.java
index 2691d18..264441e 100644
--- a/src/main/java/com/android/tools/r8/verticalclassmerging/VerticalClassMergerPolicyExecutor.java
+++ b/src/main/java/com/android/tools/r8/verticalclassmerging/VerticalClassMergerPolicyExecutor.java
@@ -18,7 +18,6 @@
import com.android.tools.r8.verticalclassmerging.policies.NoDirectlyInstantiatedClassesPolicy;
import com.android.tools.r8.verticalclassmerging.policies.NoEnclosingMethodAttributesPolicy;
import com.android.tools.r8.verticalclassmerging.policies.NoFieldResolutionChangesPolicy;
-import com.android.tools.r8.verticalclassmerging.policies.NoFinalSourceInstanceFieldsWithConstructorInliningPolicy;
import com.android.tools.r8.verticalclassmerging.policies.NoIllegalAccessesPolicy;
import com.android.tools.r8.verticalclassmerging.policies.NoInnerClassAttributesPolicy;
import com.android.tools.r8.verticalclassmerging.policies.NoInterfacesWithInvokeSpecialToDefaultMethodIntoClassPolicy;
@@ -70,7 +69,6 @@
Collection<Policy> policies =
List.of(
new NoDirectlyInstantiatedClassesPolicy(appView),
- new NoFinalSourceInstanceFieldsWithConstructorInliningPolicy(appView, mode),
new NoInterfacesWithUnknownSubtypesPolicy(appView),
new NoKeptClassesPolicy(appView),
new SameFeatureSplitPolicy(appView),
diff --git a/src/main/java/com/android/tools/r8/verticalclassmerging/policies/NoFinalSourceInstanceFieldsWithConstructorInliningPolicy.java b/src/main/java/com/android/tools/r8/verticalclassmerging/policies/NoFinalSourceInstanceFieldsWithConstructorInliningPolicy.java
deleted file mode 100644
index 14b9ece..0000000
--- a/src/main/java/com/android/tools/r8/verticalclassmerging/policies/NoFinalSourceInstanceFieldsWithConstructorInliningPolicy.java
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-package com.android.tools.r8.verticalclassmerging.policies;
-
-import com.android.tools.r8.classmerging.ClassMergerMode;
-import com.android.tools.r8.graph.AppView;
-import com.android.tools.r8.graph.DexEncodedField;
-import com.android.tools.r8.shaking.AppInfoWithLiveness;
-import com.android.tools.r8.utils.InternalOptions;
-import com.android.tools.r8.verticalclassmerging.VerticalMergeGroup;
-import com.google.common.collect.Iterables;
-
-public class NoFinalSourceInstanceFieldsWithConstructorInliningPolicy
- extends VerticalClassMergerPolicy {
-
- private final ClassMergerMode mode;
- private final InternalOptions options;
-
- public NoFinalSourceInstanceFieldsWithConstructorInliningPolicy(
- AppView<AppInfoWithLiveness> appView, ClassMergerMode mode) {
- this.mode = mode;
- this.options = appView.options();
- }
-
- @Override
- public boolean canMerge(VerticalMergeGroup group) {
- return group.getSource().isInterface()
- || !options.canInitNewInstanceUsingSuperclassConstructor()
- || Iterables.isEmpty(group.getSource().instanceFields(DexEncodedField::isFinal));
- }
-
- @Override
- public boolean shouldSkipPolicy() {
- return mode.isInitial();
- }
-
- @Override
- public String getName() {
- return "NoFinalSourceInstanceFieldsWithConstructorInliningPolicy";
- }
-}