Rename TypeRewriter to DesugaredLibraryTypeRewriter
This also moves the class to desugar.desugaredlibrary.
Change-Id: I768a12d11b4de5248b7251aadee3cb4007f4a113
diff --git a/src/main/java/com/android/tools/r8/D8.java b/src/main/java/com/android/tools/r8/D8.java
index fb4fba5..ae366a3 100644
--- a/src/main/java/com/android/tools/r8/D8.java
+++ b/src/main/java/com/android/tools/r8/D8.java
@@ -24,15 +24,15 @@
import com.android.tools.r8.inspector.internal.InspectorImpl;
import com.android.tools.r8.ir.analysis.value.AbstractValueFactory;
import com.android.tools.r8.ir.conversion.PrimaryD8L8IRConverter;
-import com.android.tools.r8.ir.desugar.TypeRewriter;
import com.android.tools.r8.ir.desugar.desugaredlibrary.DesugaredLibraryAmender;
+import com.android.tools.r8.ir.desugar.desugaredlibrary.DesugaredLibraryTypeRewriter;
+import com.android.tools.r8.ir.desugar.desugaredlibrary.PrefixRewritingNamingLens;
import com.android.tools.r8.ir.optimize.AssertionsRewriter;
import com.android.tools.r8.ir.optimize.info.OptimizationFeedbackSimple;
import com.android.tools.r8.jar.CfApplicationWriter;
import com.android.tools.r8.keepanno.annotations.KeepForApi;
import com.android.tools.r8.kotlin.KotlinMetadataRewriter;
import com.android.tools.r8.naming.NamingLens;
-import com.android.tools.r8.naming.PrefixRewritingNamingLens;
import com.android.tools.r8.naming.RecordRewritingNamingLens;
import com.android.tools.r8.naming.VarHandleDesugaringRewritingNamingLens;
import com.android.tools.r8.naming.signature.GenericSignatureRewriter;
@@ -178,7 +178,8 @@
timing.begin("Load desugared lib");
options.getLibraryDesugaringOptions().loadMachineDesugaredLibrarySpecification(timing, app);
timing.end();
- TypeRewriter typeRewriter = options.getLibraryDesugaringOptions().getTypeRewriter();
+ DesugaredLibraryTypeRewriter typeRewriter =
+ options.getLibraryDesugaringOptions().getTypeRewriter();
AppInfo appInfo =
timing.time(
"Create app-info",
@@ -280,7 +281,7 @@
if (options.isGeneratingDex()
&& hasDexResources
&& hasClassResources
- && appView.typeRewriter.isRewriting()) {
+ && appView.desugaredLibraryTypeRewriter.isRewriting()) {
// There are both cf and dex inputs in the program, and rewriting is required for
// desugared library only on cf inputs. We cannot easily rewrite part of the program
// without iterating again the IR. We fall-back to writing one app with rewriting and
diff --git a/src/main/java/com/android/tools/r8/GlobalSyntheticsGenerator.java b/src/main/java/com/android/tools/r8/GlobalSyntheticsGenerator.java
index 05190a1..0728314 100644
--- a/src/main/java/com/android/tools/r8/GlobalSyntheticsGenerator.java
+++ b/src/main/java/com/android/tools/r8/GlobalSyntheticsGenerator.java
@@ -33,7 +33,7 @@
import com.android.tools.r8.graph.NestHostClassAttribute;
import com.android.tools.r8.graph.ThrowExceptionCode;
import com.android.tools.r8.ir.conversion.PrimaryD8L8IRConverter;
-import com.android.tools.r8.ir.desugar.TypeRewriter;
+import com.android.tools.r8.ir.desugar.desugaredlibrary.DesugaredLibraryTypeRewriter;
import com.android.tools.r8.ir.desugar.records.RecordDesugaringEventConsumer;
import com.android.tools.r8.ir.desugar.records.RecordTagSynthesizer;
import com.android.tools.r8.ir.desugar.varhandle.VarHandleDesugaring;
@@ -157,7 +157,8 @@
ApplicationReader applicationReader = new ApplicationReader(inputApp, options, timing);
DirectMappedDexApplication app = applicationReader.read(executor).toDirect();
timing.end();
- TypeRewriter typeRewriter = options.getLibraryDesugaringOptions().getTypeRewriter();
+ DesugaredLibraryTypeRewriter typeRewriter =
+ options.getLibraryDesugaringOptions().getTypeRewriter();
AppInfo appInfo =
timing.time(
"Create app-info",
diff --git a/src/main/java/com/android/tools/r8/L8.java b/src/main/java/com/android/tools/r8/L8.java
index ddd2641..ddeac33 100644
--- a/src/main/java/com/android/tools/r8/L8.java
+++ b/src/main/java/com/android/tools/r8/L8.java
@@ -12,11 +12,11 @@
import com.android.tools.r8.graph.DexApplication;
import com.android.tools.r8.graph.LazyLoadedDexApplication;
import com.android.tools.r8.ir.conversion.PrimaryD8L8IRConverter;
-import com.android.tools.r8.ir.desugar.TypeRewriter;
import com.android.tools.r8.ir.desugar.desugaredlibrary.DesugaredLibraryAmender;
+import com.android.tools.r8.ir.desugar.desugaredlibrary.DesugaredLibraryTypeRewriter;
+import com.android.tools.r8.ir.desugar.desugaredlibrary.PrefixRewritingNamingLens;
import com.android.tools.r8.jar.CfApplicationWriter;
import com.android.tools.r8.keepanno.annotations.KeepForApi;
-import com.android.tools.r8.naming.PrefixRewritingNamingLens;
import com.android.tools.r8.naming.VarHandleDesugaringRewritingNamingLens;
import com.android.tools.r8.naming.signature.GenericSignatureRewriter;
import com.android.tools.r8.origin.CommandLineOrigin;
@@ -167,7 +167,8 @@
LazyLoadedDexApplication lazyApp =
new ApplicationReader(inputApp, options, timing).read(executor);
options.getLibraryDesugaringOptions().loadMachineDesugaredLibrarySpecification(timing, lazyApp);
- TypeRewriter typeRewriter = options.getLibraryDesugaringOptions().getTypeRewriter();
+ DesugaredLibraryTypeRewriter typeRewriter =
+ options.getLibraryDesugaringOptions().getTypeRewriter();
DexApplication app = new L8TreePruner(options).prune(lazyApp, typeRewriter);
return AppView.createForL8(
diff --git a/src/main/java/com/android/tools/r8/R8.java b/src/main/java/com/android/tools/r8/R8.java
index ed134b1..1359ad8 100644
--- a/src/main/java/com/android/tools/r8/R8.java
+++ b/src/main/java/com/android/tools/r8/R8.java
@@ -46,6 +46,7 @@
import com.android.tools.r8.ir.desugar.CfClassSynthesizerDesugaringCollection;
import com.android.tools.r8.ir.desugar.CfClassSynthesizerDesugaringEventConsumer;
import com.android.tools.r8.ir.desugar.desugaredlibrary.DesugaredLibraryAmender;
+import com.android.tools.r8.ir.desugar.desugaredlibrary.PrefixRewritingNamingLens;
import com.android.tools.r8.ir.desugar.itf.InterfaceMethodRewriter;
import com.android.tools.r8.ir.desugar.records.RecordFieldValuesRewriter;
import com.android.tools.r8.ir.desugar.records.RecordInstructionDesugaring;
@@ -64,7 +65,6 @@
import com.android.tools.r8.kotlin.KotlinMetadataUtils;
import com.android.tools.r8.naming.IdentifierMinifier;
import com.android.tools.r8.naming.Minifier;
-import com.android.tools.r8.naming.PrefixRewritingNamingLens;
import com.android.tools.r8.naming.ProguardMapMinifier;
import com.android.tools.r8.naming.RecordRewritingNamingLens;
import com.android.tools.r8.naming.signature.GenericSignatureRewriter;
diff --git a/src/main/java/com/android/tools/r8/graph/AppView.java b/src/main/java/com/android/tools/r8/graph/AppView.java
index c6e640a..17b3c2d 100644
--- a/src/main/java/com/android/tools/r8/graph/AppView.java
+++ b/src/main/java/com/android/tools/r8/graph/AppView.java
@@ -32,7 +32,7 @@
import com.android.tools.r8.ir.analysis.value.AbstractValueJoiner.AbstractValueConstantPropagationJoiner;
import com.android.tools.r8.ir.analysis.value.AbstractValueJoiner.AbstractValueFieldJoiner;
import com.android.tools.r8.ir.analysis.value.AbstractValueJoiner.AbstractValueParameterJoiner;
-import com.android.tools.r8.ir.desugar.TypeRewriter;
+import com.android.tools.r8.ir.desugar.desugaredlibrary.DesugaredLibraryTypeRewriter;
import com.android.tools.r8.ir.optimize.enums.EnumDataMap;
import com.android.tools.r8.ir.optimize.info.MethodResolutionOptimizationInfoCollection;
import com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoFactory;
@@ -131,7 +131,7 @@
new SimpleInliningConstraintFactory();
// Desugaring.
- public final TypeRewriter typeRewriter;
+ public final DesugaredLibraryTypeRewriter desugaredLibraryTypeRewriter;
// Modeling.
private final LibraryMethodSideEffectModelCollection libraryMethodSideEffectModelCollection;
@@ -175,7 +175,7 @@
ArtProfileCollection artProfileCollection,
StartupProfile startupProfile,
WholeProgramOptimizations wholeProgramOptimizations,
- TypeRewriter mapper) {
+ DesugaredLibraryTypeRewriter mapper) {
this(
appInfo,
artProfileCollection,
@@ -190,7 +190,7 @@
ArtProfileCollection artProfileCollection,
StartupProfile startupProfile,
WholeProgramOptimizations wholeProgramOptimizations,
- TypeRewriter mapper,
+ DesugaredLibraryTypeRewriter mapper,
Timing timing) {
assert appInfo != null;
this.appInfo = appInfo;
@@ -214,7 +214,7 @@
"Dont warn config",
() -> DontWarnConfiguration.create(options().getProguardConfiguration()));
this.initClassLens = timing.time("Init class lens", InitClassLens::getThrowingInstance);
- this.typeRewriter = mapper;
+ this.desugaredLibraryTypeRewriter = mapper;
timing.begin("Create argument propagator");
if (enableWholeProgramOptimizations() && options().callSiteOptimizationOptions().isEnabled()) {
this.argumentPropagator = new ArgumentPropagator(withLiveness());
@@ -247,7 +247,7 @@
return libraryMemberOptimizer.isModeled(type);
}
- private static TypeRewriter defaultTypeRewriter(AppInfo appInfo) {
+ private static DesugaredLibraryTypeRewriter defaultTypeRewriter(AppInfo appInfo) {
return appInfo.options().getLibraryDesugaringOptions().getTypeRewriter();
}
@@ -277,7 +277,7 @@
}
public static <T extends AppInfo> AppView<T> createForD8(
- T appInfo, TypeRewriter mapper, Timing timing) {
+ T appInfo, DesugaredLibraryTypeRewriter mapper, Timing timing) {
return new AppView<>(
appInfo,
ArtProfileCollection.createInitialArtProfileCollection(appInfo, appInfo.options()),
@@ -309,7 +309,8 @@
defaultTypeRewriter(appInfo));
}
- public static <T extends AppInfo> AppView<T> createForL8(T appInfo, TypeRewriter mapper) {
+ public static <T extends AppInfo> AppView<T> createForL8(
+ T appInfo, DesugaredLibraryTypeRewriter mapper) {
return new AppView<>(
appInfo,
ArtProfileCollection.createInitialArtProfileCollection(appInfo, appInfo.options()),
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/BackportedMethodRewriter.java b/src/main/java/com/android/tools/r8/ir/desugar/BackportedMethodRewriter.java
index 7ce7bcc..ee7aa09 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/BackportedMethodRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/BackportedMethodRewriter.java
@@ -65,6 +65,7 @@
import com.android.tools.r8.ir.desugar.backports.OptionalMethodRewrites;
import com.android.tools.r8.ir.desugar.backports.SparseArrayMethodRewrites;
import com.android.tools.r8.ir.desugar.backports.TypedArrayMethodRewrites;
+import com.android.tools.r8.ir.desugar.desugaredlibrary.DesugaredLibraryTypeRewriter;
import com.android.tools.r8.ir.desugar.desugaredlibrary.retargeter.DesugaredLibraryRetargeter;
import com.android.tools.r8.position.MethodPosition;
import com.android.tools.r8.synthesis.SyntheticItems.GlobalSyntheticsStrategy;
@@ -212,7 +213,8 @@
options
.getLibraryDesugaringOptions()
.loadMachineDesugaredLibrarySpecification(Timing.empty(), app);
- TypeRewriter typeRewriter = options.getLibraryDesugaringOptions().getTypeRewriter();
+ DesugaredLibraryTypeRewriter typeRewriter =
+ options.getLibraryDesugaringOptions().getTypeRewriter();
AppInfo appInfo =
AppInfo.createInitialAppInfo(app, GlobalSyntheticsStrategy.forNonSynthesizing());
AppView<?> appView = AppView.createForD8(appInfo, typeRewriter, Timing.empty());
@@ -417,7 +419,7 @@
}
private boolean typeIsInDesugaredLibrary(DexType type) {
- return appView.typeRewriter.hasRewrittenType(type, appView)
+ return appView.desugaredLibraryTypeRewriter.hasRewrittenType(type, appView)
|| appView
.options()
.getLibraryDesugaringOptions()
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/CfPostProcessingDesugaringCollection.java b/src/main/java/com/android/tools/r8/ir/desugar/CfPostProcessingDesugaringCollection.java
index fe9f928..f31a4a7 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/CfPostProcessingDesugaringCollection.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/CfPostProcessingDesugaringCollection.java
@@ -68,7 +68,7 @@
desugarings.add(interfaceMethodProcessorFacade);
}
DesugaredLibraryAPICallbackSynthesizer apiCallbackSynthesizor =
- appView.typeRewriter.isRewriting()
+ appView.desugaredLibraryTypeRewriter.isRewriting()
? new DesugaredLibraryAPICallbackSynthesizer(appView, isLiveMethod)
: null;
// At this point the desugaredLibraryAPIConverter is required to be last to generate
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/NonEmptyCfInstructionDesugaringCollection.java b/src/main/java/com/android/tools/r8/ir/desugar/NonEmptyCfInstructionDesugaringCollection.java
index 97f5a0c..ece7ef6 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/NonEmptyCfInstructionDesugaringCollection.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/NonEmptyCfInstructionDesugaringCollection.java
@@ -150,7 +150,7 @@
desugarings.add(new OutlineArrayCloneFromInterfaceMethodDesugaring(appView));
}
desugaredLibraryAPIConverter =
- appView.typeRewriter.isRewriting()
+ appView.desugaredLibraryTypeRewriter.isRewriting()
? new DesugaredLibraryAPIConverter(
appView,
SetUtils.newImmutableSetExcludingNullItems(
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/TypeRewriter.java b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/DesugaredLibraryTypeRewriter.java
similarity index 90%
rename from src/main/java/com/android/tools/r8/ir/desugar/TypeRewriter.java
rename to src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/DesugaredLibraryTypeRewriter.java
index d075274..daebdd3 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/TypeRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/DesugaredLibraryTypeRewriter.java
@@ -2,7 +2,7 @@
// 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.ir.desugar;
+package com.android.tools.r8.ir.desugar.desugaredlibrary;
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexProto;
@@ -12,9 +12,9 @@
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Consumer;
-public abstract class TypeRewriter {
+public abstract class DesugaredLibraryTypeRewriter {
- public static TypeRewriter empty() {
+ public static DesugaredLibraryTypeRewriter empty() {
return new EmptyTypeRewriter();
}
@@ -44,7 +44,7 @@
public abstract void forAllRewrittenTypes(Consumer<DexType> consumer);
- public static class MachineTypeRewriter extends TypeRewriter {
+ public static class MachineTypeRewriter extends DesugaredLibraryTypeRewriter {
private final Map<DexType, DexType> rewriteType;
private final Map<DexType, DexType> rewriteDerivedTypeOnly;
@@ -100,7 +100,7 @@
}
}
- public static class EmptyTypeRewriter extends TypeRewriter {
+ public static class EmptyTypeRewriter extends DesugaredLibraryTypeRewriter {
@Override
public DexType rewrittenType(DexType type, AppView<?> appView) {
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/LibraryDesugaringOptions.java b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/LibraryDesugaringOptions.java
index 97f0ed0..9bf4ee5 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/LibraryDesugaringOptions.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/LibraryDesugaringOptions.java
@@ -4,8 +4,7 @@
package com.android.tools.r8.ir.desugar.desugaredlibrary;
import com.android.tools.r8.graph.DexApplication;
-import com.android.tools.r8.ir.desugar.TypeRewriter;
-import com.android.tools.r8.ir.desugar.TypeRewriter.MachineTypeRewriter;
+import com.android.tools.r8.ir.desugar.desugaredlibrary.DesugaredLibraryTypeRewriter.MachineTypeRewriter;
import com.android.tools.r8.ir.desugar.desugaredlibrary.machinespecification.MachineDesugaredLibrarySpecification;
import com.android.tools.r8.utils.DescriptorUtils;
import com.android.tools.r8.utils.InternalOptions;
@@ -108,9 +107,9 @@
timing.end();
}
- public TypeRewriter getTypeRewriter() {
+ public DesugaredLibraryTypeRewriter getTypeRewriter() {
return machineDesugaredLibrarySpecification.requiresTypeRewriting()
? new MachineTypeRewriter(machineDesugaredLibrarySpecification)
- : TypeRewriter.empty();
+ : DesugaredLibraryTypeRewriter.empty();
}
}
diff --git a/src/main/java/com/android/tools/r8/naming/PrefixRewritingNamingLens.java b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/PrefixRewritingNamingLens.java
similarity index 87%
rename from src/main/java/com/android/tools/r8/naming/PrefixRewritingNamingLens.java
rename to src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/PrefixRewritingNamingLens.java
index a21ad04..77e22b9 100644
--- a/src/main/java/com/android/tools/r8/naming/PrefixRewritingNamingLens.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/PrefixRewritingNamingLens.java
@@ -1,8 +1,8 @@
-// Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
+// Copyright (c) 2025, 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.naming;
+package com.android.tools.r8.ir.desugar.desugaredlibrary;
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexField;
@@ -10,6 +10,7 @@
import com.android.tools.r8.graph.DexString;
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.graph.InnerClassAttribute;
+import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.naming.NamingLens.NonIdentityNamingLens;
import com.android.tools.r8.utils.InternalOptions;
@@ -20,7 +21,7 @@
private final NamingLens namingLens;
public static void commitPrefixRewritingNamingLens(AppView<?> appView) {
- if (!appView.typeRewriter.isRewriting()) {
+ if (!appView.desugaredLibraryTypeRewriter.isRewriting()) {
return;
}
InternalOptions options = appView.options();
@@ -43,8 +44,8 @@
private DexString getRenaming(DexType type) {
DexString descriptor = null;
- if (appView.typeRewriter.hasRewrittenType(type, appView)) {
- descriptor = appView.typeRewriter.rewrittenType(type, appView).descriptor;
+ if (appView.desugaredLibraryTypeRewriter.hasRewrittenType(type, appView)) {
+ descriptor = appView.desugaredLibraryTypeRewriter.rewrittenType(type, appView).descriptor;
}
return descriptor;
}
@@ -104,7 +105,7 @@
}
private boolean verifyNotPrefixRewrittenPackage(String packageName) {
- appView.typeRewriter.forAllRewrittenTypes(
+ appView.desugaredLibraryTypeRewriter.forAllRewrittenTypes(
dexType -> {
assert !dexType.getPackageDescriptor().equals(packageName);
});
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/apiconversion/DesugaredLibraryAPICallbackSynthesizer.java b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/apiconversion/DesugaredLibraryAPICallbackSynthesizer.java
index 7f40824..dac6a77 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/apiconversion/DesugaredLibraryAPICallbackSynthesizer.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/apiconversion/DesugaredLibraryAPICallbackSynthesizer.java
@@ -121,7 +121,8 @@
|| definition.isLibraryMethodOverride().isFalse()) {
return false;
}
- if (!appView.typeRewriter.hasRewrittenTypeInSignature(definition.getProto(), appView)
+ if (!appView.desugaredLibraryTypeRewriter.hasRewrittenTypeInSignature(
+ definition.getProto(), appView)
|| appView
.options()
.getLibraryDesugaringOptions()
@@ -185,7 +186,7 @@
DexEncodedMethod dexEncodedMethod = dexClass.lookupVirtualMethod(method.getReference());
if (dexEncodedMethod != null) {
// In this case, the object will be wrapped.
- if (appView.typeRewriter.hasRewrittenType(dexClass.type, appView)) {
+ if (appView.desugaredLibraryTypeRewriter.hasRewrittenType(dexClass.type, appView)) {
return false;
}
if (dexEncodedMethod.isFinal()) {
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/apiconversion/DesugaredLibraryAPIConverter.java b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/apiconversion/DesugaredLibraryAPIConverter.java
index 6dbdf07..84f4887 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/apiconversion/DesugaredLibraryAPIConverter.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/apiconversion/DesugaredLibraryAPIConverter.java
@@ -148,7 +148,8 @@
return false;
}
DexType holderType = invokedMethod.getHolderType();
- if (appView.typeRewriter.hasRewrittenType(holderType, appView) || holderType.isArrayType()) {
+ if (appView.desugaredLibraryTypeRewriter.hasRewrittenType(holderType, appView)
+ || holderType.isArrayType()) {
return false;
}
DexClass dexClass = appView.definitionFor(holderType);
@@ -170,7 +171,8 @@
!= null) {
return true;
}
- return appView.typeRewriter.hasRewrittenTypeInSignature(invokedMethod.getProto(), appView);
+ return appView.desugaredLibraryTypeRewriter.hasRewrittenTypeInSignature(
+ invokedMethod.getProto(), appView);
}
// The problem is that a method can resolve into a library method which is not present at runtime,
@@ -202,14 +204,14 @@
DexType[] newParameters = originalMethod.proto.parameters.values.clone();
int index = 0;
for (DexType param : originalMethod.proto.parameters.values) {
- if (appView.typeRewriter.hasRewrittenType(param, appView)) {
+ if (appView.desugaredLibraryTypeRewriter.hasRewrittenType(param, appView)) {
newParameters[index] = vivifiedTypeFor(param, appView);
}
index++;
}
DexType returnType = originalMethod.proto.returnType;
DexType newReturnType =
- appView.typeRewriter.hasRewrittenType(returnType, appView)
+ appView.desugaredLibraryTypeRewriter.hasRewrittenType(returnType, appView)
? vivifiedTypeFor(returnType, appView)
: returnType;
DexProto newProto = appView.dexItemFactory().createProto(newReturnType, newParameters);
@@ -242,7 +244,7 @@
.createSynthesizedType(
DescriptorUtils.javaTypeToDescriptor(VIVIFIED_PREFIX + type.toString()));
// We would need to ensure a classpath class for each type to remove this rewriteType call.
- appView.typeRewriter.rewriteType(vivifiedType, type);
+ appView.desugaredLibraryTypeRewriter.rewriteType(vivifiedType, type);
return vivifiedType;
}
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/apiconversion/DesugaredLibraryConversionCfProvider.java b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/apiconversion/DesugaredLibraryConversionCfProvider.java
index 521ec58..b9f5b97 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/apiconversion/DesugaredLibraryConversionCfProvider.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/apiconversion/DesugaredLibraryConversionCfProvider.java
@@ -162,7 +162,7 @@
DexMethod[] parameterConversions =
computeParameterConversions(method, true, eventConsumer, context, contextSupplier);
DexType newHolder =
- appView.typeRewriter.hasRewrittenType(method.getHolderType(), appView)
+ appView.desugaredLibraryTypeRewriter.hasRewrittenType(method.getHolderType(), appView)
? vivifiedTypeFor(method.getHolderType(), appView)
: method.getHolderType();
DexMethod forwardMethod =
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/apiconversion/DesugaredLibraryWrapperSynthesizer.java b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/apiconversion/DesugaredLibraryWrapperSynthesizer.java
index 97053e5..cf62061 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/apiconversion/DesugaredLibraryWrapperSynthesizer.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/apiconversion/DesugaredLibraryWrapperSynthesizer.java
@@ -158,7 +158,7 @@
if (apiGenericTypesConversion != null) {
return true;
}
- if (!appView.typeRewriter.hasRewrittenType(type, appView)) {
+ if (!appView.desugaredLibraryTypeRewriter.hasRewrittenType(type, appView)) {
return false;
}
if (canConvert(type)) {
@@ -371,7 +371,7 @@
}
private void reportInvalidInvoke(DexType type, DexMethod invokedMethod, ProgramMethod context) {
- DexType desugaredType = appView.typeRewriter.rewrittenType(type, appView);
+ DexType desugaredType = appView.desugaredLibraryTypeRewriter.rewrittenType(type, appView);
Origin origin = context != null ? context.getOrigin() : Origin.unknown();
Position position =
context != null ? new MethodPosition(context.getMethodReference()) : Position.UNKNOWN;
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/disabledesugarer/DesugaredLibraryDisableDesugarerHelper.java b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/disabledesugarer/DesugaredLibraryDisableDesugarerHelper.java
index 2bf5df0..6b09004 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/disabledesugarer/DesugaredLibraryDisableDesugarerHelper.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/disabledesugarer/DesugaredLibraryDisableDesugarerHelper.java
@@ -115,6 +115,6 @@
}
boolean isRewrittenType(DexType type) {
- return appView.typeRewriter.hasRewrittenType(type, appView);
+ return appView.desugaredLibraryTypeRewriter.hasRewrittenType(type, appView);
}
}
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/itf/InterfaceDesugaringSyntheticHelper.java b/src/main/java/com/android/tools/r8/ir/desugar/itf/InterfaceDesugaringSyntheticHelper.java
index 19f8486..f0d57f9 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/itf/InterfaceDesugaringSyntheticHelper.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/itf/InterfaceDesugaringSyntheticHelper.java
@@ -136,7 +136,7 @@
.contains(clazz.type)) {
return true;
}
- return appView.typeRewriter.hasRewrittenType(clazz.type, appView);
+ return appView.desugaredLibraryTypeRewriter.hasRewrittenType(clazz.type, appView);
}
final boolean isCompatibleDefaultMethod(DexEncodedMethod method) {
@@ -679,7 +679,7 @@
return type -> {
DexString descriptor = type.getDescriptor();
- return appView.typeRewriter.hasRewrittenType(type, appView)
+ return appView.desugaredLibraryTypeRewriter.hasRewrittenType(type, appView)
|| descriptor.endsWith(companionClassNameDescriptorSuffix)
|| isRewrittenEmulatedInterface(type)
|| options
diff --git a/src/main/java/com/android/tools/r8/naming/Minifier.java b/src/main/java/com/android/tools/r8/naming/Minifier.java
index 9f31587..cd868e1 100644
--- a/src/main/java/com/android/tools/r8/naming/Minifier.java
+++ b/src/main/java/com/android/tools/r8/naming/Minifier.java
@@ -354,7 +354,7 @@
super(appView.options().getProguardConfiguration().getObfuscationDictionary(), false);
this.appView = appView;
this.factory = appView.dexItemFactory();
- this.desugaredLibraryRenaming = appView.typeRewriter.isRewriting();
+ this.desugaredLibraryRenaming = appView.desugaredLibraryTypeRewriter.isRewriting();
}
@Override
@@ -404,7 +404,8 @@
}
if (desugaredLibraryRenaming
&& method.getDefinition().isLibraryMethodOverride().isTrue()
- && appView.typeRewriter.hasRewrittenTypeInSignature(method.getProto(), appView)) {
+ && appView.desugaredLibraryTypeRewriter.hasRewrittenTypeInSignature(
+ method.getProto(), appView)) {
// With desugared library, call-backs names are reserved here.
return method.getName();
}
diff --git a/src/main/java/com/android/tools/r8/shaking/Enqueuer.java b/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
index 3f5389f..a47ffa7 100644
--- a/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
+++ b/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
@@ -3233,7 +3233,7 @@
// maintains the library override. In the second enqueuer phase, the signature has been
// desugared, and the second resolution maintains the the library override.
if (instantiation.isClass()
- && appView.typeRewriter.hasRewrittenTypeInSignature(
+ && appView.desugaredLibraryTypeRewriter.hasRewrittenTypeInSignature(
method.getReference().proto, appView)) {
DexMethod methodToResolve =
DesugaredLibraryAPIConverter.methodWithVivifiedTypeInSignature(
diff --git a/src/main/java/com/android/tools/r8/shaking/L8TreePruner.java b/src/main/java/com/android/tools/r8/shaking/L8TreePruner.java
index 3691919..bbdc65a 100644
--- a/src/main/java/com/android/tools/r8/shaking/L8TreePruner.java
+++ b/src/main/java/com/android/tools/r8/shaking/L8TreePruner.java
@@ -7,7 +7,7 @@
import com.android.tools.r8.graph.DexApplication;
import com.android.tools.r8.graph.DexProgramClass;
import com.android.tools.r8.graph.DexType;
-import com.android.tools.r8.ir.desugar.TypeRewriter;
+import com.android.tools.r8.ir.desugar.desugaredlibrary.DesugaredLibraryTypeRewriter;
import com.android.tools.r8.utils.InternalOptions;
import java.util.ArrayList;
import java.util.IdentityHashMap;
@@ -27,7 +27,7 @@
this.options = options;
}
- public DexApplication prune(DexApplication app, TypeRewriter typeRewriter) {
+ public DexApplication prune(DexApplication app, DesugaredLibraryTypeRewriter typeRewriter) {
Set<DexType> maintainType =
options
.getLibraryDesugaringOptions()
diff --git a/src/main/java/com/android/tools/r8/shaking/MissingClasses.java b/src/main/java/com/android/tools/r8/shaking/MissingClasses.java
index 266789f..7a8fc54 100644
--- a/src/main/java/com/android/tools/r8/shaking/MissingClasses.java
+++ b/src/main/java/com/android/tools/r8/shaking/MissingClasses.java
@@ -317,7 +317,7 @@
private static void addWithRewrittenType(
ImmutableSet.Builder<DexType> builder, DexType type, AppView<?> appView) {
builder.add(type);
- DexType rewrittenType = appView.typeRewriter.rewrittenType(type, appView);
+ DexType rewrittenType = appView.desugaredLibraryTypeRewriter.rewrittenType(type, appView);
if (rewrittenType != null) {
builder.add(rewrittenType);
}
diff --git a/src/main/java/com/android/tools/r8/synthesis/SynthesizingContext.java b/src/main/java/com/android/tools/r8/synthesis/SynthesizingContext.java
index 56ad8ec..99ea49e 100644
--- a/src/main/java/com/android/tools/r8/synthesis/SynthesizingContext.java
+++ b/src/main/java/com/android/tools/r8/synthesis/SynthesizingContext.java
@@ -149,7 +149,8 @@
return;
}
assert hygienicType.toSourceString().startsWith(synthesizingContextType.toSourceString());
- DexType rewrittenContext = appView.typeRewriter.rewrittenContextType(synthesizingContextType);
+ DexType rewrittenContext =
+ appView.desugaredLibraryTypeRewriter.rewrittenContextType(synthesizingContextType);
if (rewrittenContext == null) {
return;
}
@@ -163,7 +164,7 @@
appView
.dexItemFactory()
.createType(getDescriptorFromClassBinaryName(rewrittenPrefix + suffix));
- appView.typeRewriter.rewriteType(hygienicType, rewrittenType);
+ appView.desugaredLibraryTypeRewriter.rewriteType(hygienicType, rewrittenType);
}
@Override
diff --git a/src/main/java/com/android/tools/r8/synthesis/SyntheticItems.java b/src/main/java/com/android/tools/r8/synthesis/SyntheticItems.java
index b331bcb..b49fb8e 100644
--- a/src/main/java/com/android/tools/r8/synthesis/SyntheticItems.java
+++ b/src/main/java/com/android/tools/r8/synthesis/SyntheticItems.java
@@ -771,13 +771,14 @@
AppView<?> appView,
DexType type) {
DexType rewrittenContextType =
- appView.typeRewriter.rewrittenContextType(outerContext.getSynthesizingContextType());
+ appView.desugaredLibraryTypeRewriter.rewrittenContextType(
+ outerContext.getSynthesizingContextType());
if (rewrittenContextType == null) {
return;
}
SynthesizingContext synthesizingContext = SynthesizingContext.fromType(rewrittenContextType);
DexType rewrittenType = contextToType.apply(synthesizingContext);
- appView.typeRewriter.rewriteType(type, rewrittenType);
+ appView.desugaredLibraryTypeRewriter.rewriteType(type, rewrittenType);
}
public DexProgramClass createClass(