Reuse references from DexItemFactory in lambda desugaring

Change-Id: I470c67165d4801015377168af5090554dbbb50e3
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java b/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java
index 0dcaf2a..6bb06d5 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java
@@ -86,14 +86,17 @@
     DexItemFactory factory = rewriter.getFactory();
     DexProto constructorProto = factory.createProto(
         factory.voidType, descriptor.captures.values);
-    this.constructor = factory.createMethod(
-        lambdaClassType, constructorProto, rewriter.constructorName);
+    this.constructor =
+        factory.createMethod(lambdaClassType, constructorProto, factory.constructorMethodName);
 
     this.target = createTarget(accessedFrom);
 
     boolean stateless = isStateless();
-    this.classConstructor = !stateless ? null
-        : factory.createMethod(lambdaClassType, constructorProto, rewriter.classConstructorName);
+    this.classConstructor =
+        !stateless
+            ? null
+            : factory.createMethod(
+                lambdaClassType, constructorProto, factory.classConstructorMethodName);
     this.lambdaField =
         !stateless
             ? null
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/LambdaConstructorSourceCode.java b/src/main/java/com/android/tools/r8/ir/desugar/LambdaConstructorSourceCode.java
index 4a12b2b..2900761 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/LambdaConstructorSourceCode.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/LambdaConstructorSourceCode.java
@@ -22,7 +22,7 @@
   @Override
   protected void prepareInstructions() {
     // Super constructor call (always java.lang.Object.<init>()).
-    DexMethod objectInitMethod = lambda.rewriter.objectInitMethod;
+    DexMethod objectInitMethod = factory().objectMethods.constructor;
     add(
         builder -> {
           assert builder.getReceiverValue() != null;
@@ -55,7 +55,8 @@
     // be treated as equal, since it only has one call to super constructor,
     // which is always java.lang.Object.<init>().
     return captures().length == 0
-        ? System.identityHashCode(lambda.rewriter.objectInitMethod) : super.hashCode();
+        ? System.identityHashCode(factory().objectMethods.constructor)
+        : super.hashCode();
   }
 
   @Override
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/LambdaConstructorSynthesizedCode.java b/src/main/java/com/android/tools/r8/ir/desugar/LambdaConstructorSynthesizedCode.java
index 29fb5c8..906e15f 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/LambdaConstructorSynthesizedCode.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/LambdaConstructorSynthesizedCode.java
@@ -22,7 +22,7 @@
   @Override
   public Consumer<UseRegistry> getRegistryCallback() {
     return registry -> {
-      registry.registerInvokeDirect(lambda.rewriter.objectInitMethod);
+      registry.registerInvokeDirect(dexItemFactory().objectMethods.constructor);
       DexType[] capturedTypes = captures();
       for (int i = 0; i < capturedTypes.length; i++) {
         registry.registerInstanceFieldWrite(lambda.getCaptureField(i));
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/LambdaRewriter.java b/src/main/java/com/android/tools/r8/ir/desugar/LambdaRewriter.java
index f093a78..eb8ba3d 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/LambdaRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/LambdaRewriter.java
@@ -66,10 +66,6 @@
 
   private final AppView<?> appView;
 
-  final DexMethod objectInitMethod;
-
-  final DexString constructorName;
-  final DexString classConstructorName;
   final DexString instanceFieldName;
 
   private final LambdaRewriterGraphLense graphLens;
@@ -94,14 +90,6 @@
   public LambdaRewriter(AppView<?> appView) {
     this.appView = appView;
     this.graphLens = new LambdaRewriterGraphLense(appView);
-    this.constructorName = getFactory().createString(Constants.INSTANCE_INITIALIZER_NAME);
-    this.objectInitMethod =
-        getFactory()
-            .createMethod(
-                getFactory().objectType,
-                getFactory().createProto(getFactory().voidType),
-                constructorName);
-    this.classConstructorName = getFactory().createString(Constants.CLASS_INITIALIZER_NAME);
     this.instanceFieldName = getFactory().createString(LAMBDA_INSTANCE_FIELD_NAME);
   }