Unify DexItemFactory usage in AnalysisTestBase.

Change-Id: Ibe43664efe33dca3bdce72fea79fab149b685e03
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/string/StringBuilderOptimizer.java b/src/main/java/com/android/tools/r8/ir/optimize/string/StringBuilderOptimizer.java
index 8d3942f..3ba841d 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/string/StringBuilderOptimizer.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/string/StringBuilderOptimizer.java
@@ -95,26 +95,6 @@
   private final Object2IntMap<Integer> histogramOfLengthOfPartialAppendChains;
   private final Object2IntMap<Integer> histogramOfLengthOfPartialResult;
 
-  @VisibleForTesting
-  StringBuilderOptimizer(
-      AppView<? extends AppInfo> appView, StringBuilderOptimizationConfiguration configuration) {
-    this.appView = appView;
-    this.factory = appView.dexItemFactory();
-    this.throwingInfo = ThrowingInfo.defaultForConstString(appView.options());
-    this.optimizationConfiguration = configuration;
-    if (Log.ENABLED) {
-      histogramOfLengthOfAppendChains = new Object2IntArrayMap<>();
-      histogramOfLengthOfEndResult = new Object2IntArrayMap<>();
-      histogramOfLengthOfPartialAppendChains = new Object2IntArrayMap<>();
-      histogramOfLengthOfPartialResult = new Object2IntArrayMap<>();
-    } else {
-      histogramOfLengthOfAppendChains = null;
-      histogramOfLengthOfEndResult = null;
-      histogramOfLengthOfPartialAppendChains = null;
-      histogramOfLengthOfPartialResult = null;
-    }
-  }
-
   public StringBuilderOptimizer(AppView<? extends AppInfo> appView) {
     this.appView = appView;
     this.factory = appView.dexItemFactory();
diff --git a/src/test/java/com/android/tools/r8/ir/analysis/AnalysisTestBase.java b/src/test/java/com/android/tools/r8/ir/analysis/AnalysisTestBase.java
index 497333c..c7e8270 100644
--- a/src/test/java/com/android/tools/r8/ir/analysis/AnalysisTestBase.java
+++ b/src/test/java/com/android/tools/r8/ir/analysis/AnalysisTestBase.java
@@ -71,10 +71,10 @@
     appView = AppView.createForR8(new AppInfoWithSubtyping(application), options);
   }
 
-  public void buildAndCheckIR(String methodName, Consumer<IRCode> irInspector) throws Exception {
-    CodeInspector inspector = new CodeInspector(app);
+  public void buildAndCheckIR(String methodName, Consumer<IRCode> irInspector) {
+    CodeInspector inspector = new CodeInspector(appView.appInfo().app());
     MethodSubject methodSubject = inspector.clazz(className).uniqueMethodWithName(methodName);
-    irInspector.accept(methodSubject.buildIR());
+    irInspector.accept(methodSubject.buildIR(appView.dexItemFactory()));
   }
 
   @SuppressWarnings("unchecked")
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/string/StringBuilderOptimizerAnalysisTest.java b/src/test/java/com/android/tools/r8/ir/optimize/string/StringBuilderOptimizerAnalysisTest.java
index a77978c..b21941a 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/string/StringBuilderOptimizerAnalysisTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/string/StringBuilderOptimizerAnalysisTest.java
@@ -9,12 +9,9 @@
 import com.android.tools.r8.TestParametersCollection;
 import com.android.tools.r8.ToolHelper.DexVm;
 import com.android.tools.r8.graph.AppView;
-import com.android.tools.r8.graph.DexMethod;
-import com.android.tools.r8.graph.DexType;
 import com.android.tools.r8.ir.analysis.AnalysisTestBase;
 import com.android.tools.r8.ir.code.IRCode;
 import com.android.tools.r8.ir.code.Instruction;
-import com.android.tools.r8.ir.code.InvokeMethod;
 import com.android.tools.r8.ir.code.Value;
 import com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer.BuilderState;
 import java.util.Map;
@@ -219,9 +216,7 @@
   static Consumer<IRCode> checkOptimizerStates(
       AppView<?> appView, Consumer<StringBuilderOptimizer> optimizerConsumer) {
     return code -> {
-      StringBuilderOptimizer optimizer =
-          new StringBuilderOptimizer(
-              appView, new StringBuilderOptimizationConfigurationForTesting(appView));
+      StringBuilderOptimizer optimizer = new StringBuilderOptimizer(appView);
       optimizer.computeTrivialStringConcatenation(code);
       optimizerConsumer.accept(optimizer);
     };
@@ -243,70 +238,4 @@
     }
     assertEquals(expectToSeeToString, metToString);
   }
-
-  static class StringBuilderOptimizationConfigurationForTesting
-      implements StringBuilderOptimizationConfiguration {
-    AppView<?> appView;
-
-    StringBuilderOptimizationConfigurationForTesting(AppView<?> appView) {
-      this.appView = appView;
-    }
-
-    @Override
-    public boolean isBuilderType(DexType type) {
-      String descriptor = type.toDescriptorString();
-      return descriptor.equals(appView.dexItemFactory().stringBuilderType.toDescriptorString())
-          || descriptor.equals(appView.dexItemFactory().stringBufferType.toDescriptorString());
-    }
-
-    @Override
-    public boolean isBuilderInit(DexMethod method, DexType builderType) {
-      return builderType == method.holder
-          && method.name.toString().equals("<init>");
-    }
-
-    @Override
-    public boolean isBuilderInit(DexMethod method) {
-      return isBuilderType(method.holder)
-          && method.name.toString().equals("<init>");
-    }
-
-    @Override
-    public boolean isBuilderInitWithInitialValue(InvokeMethod invoke) {
-      return isBuilderInit(invoke.getInvokedMethod())
-          && invoke.inValues().size() == 2
-          && !invoke.inValues().get(1).getTypeLattice().isPrimitive();
-    }
-
-    @Override
-    public boolean isAppendMethod(DexMethod method) {
-      return isBuilderType(method.holder) && method.name.toString().equals("append");
-    }
-
-    @Override
-    public boolean isSupportedAppendMethod(InvokeMethod invoke) {
-      DexMethod invokedMethod = invoke.getInvokedMethod();
-      assert isAppendMethod(invokedMethod);
-      if (invoke.inValues().size() > 2) {
-        return false;
-      }
-      for (DexType argType : invokedMethod.proto.parameters.values) {
-        if (!canHandleArgumentType(argType)) {
-          return false;
-        }
-      }
-      return true;
-    }
-
-    @Override
-    public boolean isToStringMethod(DexMethod method) {
-      return isBuilderType(method.holder) && method.name.toString().equals("toString");
-    }
-
-    private boolean canHandleArgumentType(DexType argType) {
-      String descriptor = argType.toDescriptorString();
-      return descriptor.equals(appView.dexItemFactory().stringType.toDescriptorString())
-          || descriptor.equals(appView.dexItemFactory().charSequenceType.toDescriptorString());
-    }
-  }
 }