Remove isEligibleForClass{Inlining,Staticizing} from InstanceInitializerInfo

Change-Id: I8a3affa907a92d836c888736259c593123716137
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java b/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java
index 2f754d1..436f81b 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java
@@ -722,7 +722,7 @@
         if (method.isInstanceInitializer()) {
           InstanceInitializerInfo initializerInfo =
               method.getOptimizationInfo().getInstanceInitializerInfo();
-          if (!initializerInfo.isEligibleForClassInlining()) {
+          if (initializerInfo.receiverMayEscapeOutsideConstructorChain()) {
             return null;
           }
         }
@@ -1078,7 +1078,7 @@
     }
     InstanceInitializerInfo initializerInfo =
         encodedMethod.getOptimizationInfo().getInstanceInitializerInfo();
-    return initializerInfo.isEligibleForClassInlining();
+    return initializerInfo.receiverNeverEscapesOutsideConstructorChain();
   }
 
   private boolean exemptFromInstructionLimit(DexEncodedMethod inlinee) {
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/info/initializer/DefaultInstanceInitializerInfo.java b/src/main/java/com/android/tools/r8/ir/optimize/info/initializer/DefaultInstanceInitializerInfo.java
index a75a255..e93cda7 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/info/initializer/DefaultInstanceInitializerInfo.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/info/initializer/DefaultInstanceInitializerInfo.java
@@ -29,16 +29,6 @@
   }
 
   @Override
-  public boolean isEligibleForClassInlining() {
-    return false;
-  }
-
-  @Override
-  public boolean isEligibleForClassStaticizing() {
-    return false;
-  }
-
-  @Override
   public boolean instanceFieldInitializationMayDependOnEnvironment() {
     return true;
   }
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/info/initializer/InstanceInitializerInfo.java b/src/main/java/com/android/tools/r8/ir/optimize/info/initializer/InstanceInitializerInfo.java
index 2614eb3..24cb9af 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/info/initializer/InstanceInitializerInfo.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/info/initializer/InstanceInitializerInfo.java
@@ -14,10 +14,6 @@
    */
   public abstract AbstractFieldSet readSet();
 
-  public abstract boolean isEligibleForClassInlining();
-
-  public abstract boolean isEligibleForClassStaticizing();
-
   /**
    * Returns true if one of the instance fields on the enclosing class may be initialized with a
    * value that may depend on the runtime environment by this constructor.
@@ -47,6 +43,10 @@
    */
   public abstract boolean receiverNeverEscapesOutsideConstructorChain();
 
+  public final boolean receiverMayEscapeOutsideConstructorChain() {
+    return !receiverNeverEscapesOutsideConstructorChain();
+  }
+
   public boolean isDefaultInfo() {
     return false;
   }
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/info/initializer/NonTrivialInstanceInitializerInfo.java b/src/main/java/com/android/tools/r8/ir/optimize/info/initializer/NonTrivialInstanceInitializerInfo.java
index 67ad395..fa41621 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/info/initializer/NonTrivialInstanceInitializerInfo.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/info/initializer/NonTrivialInstanceInitializerInfo.java
@@ -20,16 +20,6 @@
   }
 
   @Override
-  public boolean isEligibleForClassInlining() {
-    return true;
-  }
-
-  @Override
-  public boolean isEligibleForClassStaticizing() {
-    return true;
-  }
-
-  @Override
   public boolean instanceFieldInitializationMayDependOnEnvironment() {
     return false;
   }
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/staticizer/StaticizingProcessor.java b/src/main/java/com/android/tools/r8/ir/optimize/staticizer/StaticizingProcessor.java
index 12992ca..e019acd 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/staticizer/StaticizingProcessor.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/staticizer/StaticizingProcessor.java
@@ -27,7 +27,6 @@
 import com.android.tools.r8.ir.conversion.IRConverter;
 import com.android.tools.r8.ir.optimize.CodeRewriter;
 import com.android.tools.r8.ir.optimize.info.OptimizationFeedback;
-import com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo;
 import com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer.CandidateInfo;
 import com.android.tools.r8.origin.Origin;
 import com.android.tools.r8.shaking.AppInfoWithLiveness;
@@ -155,9 +154,7 @@
       // fields this should guarantee that the constructor is empty.
       assert candidateClass.instanceFields().size() == 0;
       assert constructorUsed.isProcessed();
-      InstanceInitializerInfo initializerInfo =
-          constructorUsed.getOptimizationInfo().getInstanceInitializerInfo();
-      if (!initializerInfo.isEligibleForClassStaticizing()) {
+      if (constructorUsed.getOptimizationInfo().mayHaveSideEffects()) {
         it.remove();
         continue;
       }