Make NamingLens available through AppView
Change-Id: I5f65e22b034185d96454e2cd182ccf7ee6d59def
diff --git a/src/main/java/com/android/tools/r8/D8.java b/src/main/java/com/android/tools/r8/D8.java
index 7cb5133..9393f4d 100644
--- a/src/main/java/com/android/tools/r8/D8.java
+++ b/src/main/java/com/android/tools/r8/D8.java
@@ -281,9 +281,8 @@
Marker.checkCompatibleDesugaredLibrary(markers, options.reporter);
InspectorImpl.runInspections(options.outputInspections, appView.appInfo().classes());
- NamingLens namingLens = NamingLens.getIdentityLens();
- namingLens = PrefixRewritingNamingLens.createPrefixRewritingNamingLens(appView, namingLens);
- namingLens = RecordRewritingNamingLens.createRecordRewritingNamingLens(appView, namingLens);
+ appView.setNamingLens(PrefixRewritingNamingLens.createPrefixRewritingNamingLens(appView));
+ appView.setNamingLens(RecordRewritingNamingLens.createRecordRewritingNamingLens(appView));
if (options.isGeneratingDex()
&& hasDexResources
@@ -294,17 +293,15 @@
// without iterating again the IR. We fall-back to writing one app with rewriting and
// merging it with the other app in rewriteNonDexInputs.
timing.begin("Rewrite non-dex inputs");
- DexApplication app =
- rewriteNonDexInputs(
- appView, inputApp, options, executor, timing, appView.appInfo().app(), namingLens);
+ DexApplication app = rewriteNonDexInputs(appView, inputApp, executor, timing);
timing.end();
appView.setAppInfo(
new AppInfo(
appView.appInfo().getSyntheticItems().commit(app),
appView.appInfo().getMainDexInfo()));
- namingLens = NamingLens.getIdentityLens();
+ appView.setNamingLens(NamingLens.getIdentityLens());
} else if (options.isGeneratingDex() && hasDexResources) {
- namingLens = NamingLens.getIdentityLens();
+ appView.setNamingLens(NamingLens.getIdentityLens());
}
// Since tracing is not lens aware, this needs to be done prior to synthetic finalization
@@ -322,21 +319,16 @@
HorizontalClassMerger.createForD8ClassMerging(appView).runIfNecessary(executor, timing);
- new GenericSignatureRewriter(appView, namingLens)
- .runForD8(appView.appInfo().classes(), executor);
- new KotlinMetadataRewriter(appView, namingLens).runForD8(executor);
+ new GenericSignatureRewriter(appView).runForD8(appView.appInfo().classes(), executor);
+ new KotlinMetadataRewriter(appView).runForD8(executor);
if (options.isGeneratingClassFiles()) {
- new CfApplicationWriter(appView, marker, namingLens)
- .write(options.getClassFileConsumer(), inputApp);
+ new CfApplicationWriter(appView, marker).write(options.getClassFileConsumer(), inputApp);
} else {
if (options.apiModelingOptions().enableStubbingOfClasses) {
new ApiReferenceStubber(appView).run(executor);
}
- new ApplicationWriter(
- appView,
- marker == null ? null : ImmutableList.copyOf(markers),
- namingLens)
+ new ApplicationWriter(appView, marker == null ? null : ImmutableList.copyOf(markers))
.write(executor, inputApp);
}
options.printWarnings();
@@ -357,13 +349,7 @@
}
private static DexApplication rewriteNonDexInputs(
- AppView<AppInfo> appView,
- AndroidApp inputApp,
- InternalOptions options,
- ExecutorService executor,
- Timing timing,
- DexApplication app,
- NamingLens desugaringLens)
+ AppView<AppInfo> appView, AndroidApp inputApp, ExecutorService executor, Timing timing)
throws IOException, ExecutionException {
// TODO(b/154575955): Remove the naming lens in D8.
appView
@@ -376,33 +362,33 @@
+ " dex the class file inputs and dex merging only dex files."));
List<DexProgramClass> dexProgramClasses = new ArrayList<>();
List<DexProgramClass> nonDexProgramClasses = new ArrayList<>();
- for (DexProgramClass aClass : app.classes()) {
+ for (DexProgramClass aClass : appView.appInfo().classes()) {
if (aClass.originatesFromDexResource()) {
dexProgramClasses.add(aClass);
} else {
nonDexProgramClasses.add(aClass);
}
}
- DexApplication cfApp = app.builder().replaceProgramClasses(nonDexProgramClasses).build();
+ DexApplication cfApp =
+ appView.app().builder().replaceProgramClasses(nonDexProgramClasses).build();
appView.setAppInfo(
new AppInfo(
appView.appInfo().getSyntheticItems().commit(cfApp),
appView.appInfo().getMainDexInfo()));
ConvertedCfFiles convertedCfFiles = new ConvertedCfFiles();
- new GenericSignatureRewriter(appView, desugaringLens)
- .run(appView.appInfo().classes(), executor);
- new KotlinMetadataRewriter(appView, desugaringLens).runForD8(executor);
+ new GenericSignatureRewriter(appView).run(appView.appInfo().classes(), executor);
+ new KotlinMetadataRewriter(appView).runForD8(executor);
new ApplicationWriter(
appView,
null,
- desugaringLens,
convertedCfFiles)
.write(executor);
AndroidApp.Builder builder = AndroidApp.builder(inputApp);
builder.getProgramResourceProviders().clear();
builder.addProgramResourceProvider(convertedCfFiles);
AndroidApp newAndroidApp = builder.build();
- DexApplication newApp = new ApplicationReader(newAndroidApp, options, timing).read(executor);
+ DexApplication newApp =
+ new ApplicationReader(newAndroidApp, appView.options(), timing).read(executor);
DexApplication.Builder<?> finalDexApp = newApp.builder();
for (DexProgramClass dexProgramClass : dexProgramClasses) {
finalDexApp.addProgramClass(dexProgramClass);
diff --git a/src/main/java/com/android/tools/r8/DexFileMergerHelper.java b/src/main/java/com/android/tools/r8/DexFileMergerHelper.java
index f6149c8..b8163c7 100644
--- a/src/main/java/com/android/tools/r8/DexFileMergerHelper.java
+++ b/src/main/java/com/android/tools/r8/DexFileMergerHelper.java
@@ -13,7 +13,6 @@
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexApplication;
import com.android.tools.r8.graph.DexProgramClass;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.synthesis.SyntheticItems.GlobalSyntheticsStrategy;
import com.android.tools.r8.utils.AndroidApp;
import com.android.tools.r8.utils.ExceptionUtils;
@@ -103,11 +102,7 @@
List<Marker> markers = appView.dexItemFactory().extractMarkers();
assert !options.hasMethodsFilter();
- ApplicationWriter writer =
- new ApplicationWriter(
- appView,
- markers,
- NamingLens.getIdentityLens());
+ ApplicationWriter writer = new ApplicationWriter(appView, markers);
writer.write(executor);
options.printWarnings();
} catch (ExecutionException e) {
diff --git a/src/main/java/com/android/tools/r8/DexSplitterHelper.java b/src/main/java/com/android/tools/r8/DexSplitterHelper.java
index b90b736..43b8e9a 100644
--- a/src/main/java/com/android/tools/r8/DexSplitterHelper.java
+++ b/src/main/java/com/android/tools/r8/DexSplitterHelper.java
@@ -16,7 +16,6 @@
import com.android.tools.r8.graph.DexProgramClass;
import com.android.tools.r8.graph.LazyLoadedDexApplication;
import com.android.tools.r8.naming.ClassNameMapper;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.shaking.MainDexInfo;
import com.android.tools.r8.synthesis.SyntheticItems.GlobalSyntheticsStrategy;
import com.android.tools.r8.utils.ExceptionUtils;
@@ -113,7 +112,6 @@
new ApplicationWriter(
appView,
markers,
- NamingLens.getIdentityLens(),
consumer)
.write(executor);
options.printWarnings();
diff --git a/src/main/java/com/android/tools/r8/GenerateLintFiles.java b/src/main/java/com/android/tools/r8/GenerateLintFiles.java
index 417fb63..27bdafd 100644
--- a/src/main/java/com/android/tools/r8/GenerateLintFiles.java
+++ b/src/main/java/com/android/tools/r8/GenerateLintFiles.java
@@ -38,7 +38,6 @@
import com.android.tools.r8.ir.desugar.desugaredlibrary.DesugaredLibrarySpecificationParser;
import com.android.tools.r8.ir.desugar.desugaredlibrary.machinespecification.MachineDesugaredLibrarySpecification;
import com.android.tools.r8.jar.CfApplicationWriter;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.synthesis.SyntheticItems.GlobalSyntheticsStrategy;
import com.android.tools.r8.utils.AndroidApiLevel;
@@ -348,11 +347,7 @@
AppView.createForD8(
AppInfo.createInitialAppInfo(
builder.build(), GlobalSyntheticsStrategy.forNonSynthesizing()));
- CfApplicationWriter writer =
- new CfApplicationWriter(
- appView,
- options.getMarker(Tool.L8),
- NamingLens.getIdentityLens());
+ CfApplicationWriter writer = new CfApplicationWriter(appView, options.getMarker(Tool.L8));
ClassFileConsumer consumer =
new ClassFileConsumer.ArchiveConsumer(
lintFile(compilationApiLevel, minApiLevel, FileUtils.JAR_EXTENSION));
diff --git a/src/main/java/com/android/tools/r8/L8.java b/src/main/java/com/android/tools/r8/L8.java
index 8a8769a..f8d95ab 100644
--- a/src/main/java/com/android/tools/r8/L8.java
+++ b/src/main/java/com/android/tools/r8/L8.java
@@ -15,7 +15,6 @@
import com.android.tools.r8.ir.desugar.TypeRewriter;
import com.android.tools.r8.ir.desugar.desugaredlibrary.DesugaredLibraryAmender;
import com.android.tools.r8.jar.CfApplicationWriter;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.naming.PrefixRewritingNamingLens;
import com.android.tools.r8.naming.signature.GenericSignatureRewriter;
import com.android.tools.r8.origin.CommandLineOrigin;
@@ -143,10 +142,10 @@
SyntheticFinalization.finalize(appView, executor);
- NamingLens namingLens = PrefixRewritingNamingLens.createPrefixRewritingNamingLens(appView);
- new GenericSignatureRewriter(appView, namingLens).run(appView.appInfo().classes(), executor);
+ appView.setNamingLens(PrefixRewritingNamingLens.createPrefixRewritingNamingLens(appView));
+ new GenericSignatureRewriter(appView).run(appView.appInfo().classes(), executor);
- new CfApplicationWriter(appView, options.getMarker(Tool.L8), namingLens)
+ new CfApplicationWriter(appView, options.getMarker(Tool.L8))
.write(options.getClassFileConsumer());
options.printWarnings();
} catch (ExecutionException e) {
diff --git a/src/main/java/com/android/tools/r8/R8.java b/src/main/java/com/android/tools/r8/R8.java
index 25a91e7..5d07a1c 100644
--- a/src/main/java/com/android/tools/r8/R8.java
+++ b/src/main/java/com/android/tools/r8/R8.java
@@ -63,7 +63,6 @@
import com.android.tools.r8.kotlin.KotlinMetadataRewriter;
import com.android.tools.r8.kotlin.KotlinMetadataUtils;
import com.android.tools.r8.naming.Minifier;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.naming.PrefixRewritingNamingLens;
import com.android.tools.r8.naming.ProguardMapMinifier;
import com.android.tools.r8.naming.RecordRewritingNamingLens;
@@ -208,29 +207,24 @@
}
static void writeApplication(
- ExecutorService executorService,
- AppView<?> appView,
- NamingLens namingLens,
- InternalOptions options,
- AndroidApp inputApp)
+ AppView<?> appView, AndroidApp inputApp, ExecutorService executorService)
throws ExecutionException {
+ InternalOptions options = appView.options();
InspectorImpl.runInspections(options.outputInspections, appView.appInfo().classes());
try {
Marker marker = options.getMarker(Tool.R8);
assert marker != null;
// Get the markers from the input which are different from the one created for this
// compilation
- Set<Marker> markers = new HashSet<>(options.itemFactory.extractMarkers());
+ Set<Marker> markers = new HashSet<>(appView.dexItemFactory().extractMarkers());
markers.remove(marker);
if (options.isGeneratingClassFiles()) {
- new CfApplicationWriter(appView, marker, namingLens)
- .write(options.getClassFileConsumer(), inputApp);
+ new CfApplicationWriter(appView, marker).write(options.getClassFileConsumer(), inputApp);
} else {
new ApplicationWriter(
appView,
// Ensure that the marker for this compilation is the first in the list.
- ImmutableList.<Marker>builder().add(marker).addAll(markers).build(),
- namingLens)
+ ImmutableList.<Marker>builder().add(marker).addAll(markers).build())
.write(executorService, inputApp);
}
} catch (IOException e) {
@@ -431,7 +425,7 @@
annotationRemoverBuilder
.build(appViewWithLiveness, removedClasses);
annotationRemover.ensureValid().run(executorService);
- new GenericSignatureRewriter(appView, NamingLens.getIdentityLens(), genericContextBuilder)
+ new GenericSignatureRewriter(appView, genericContextBuilder)
.run(appView.appInfo().classes(), executorService);
assert appView.checkForTesting(() -> allReferencesAssignedApiLevel(appViewWithLiveness));
@@ -650,8 +644,7 @@
AnnotationRemover.builder(Mode.FINAL_TREE_SHAKING)
.build(appView.withLiveness(), removedClasses)
.run(executorService);
- new GenericSignatureRewriter(
- appView, NamingLens.getIdentityLens(), genericContextBuilder)
+ new GenericSignatureRewriter(appView, genericContextBuilder)
.run(appView.appInfo().classes(), executorService);
assert appView.checkForTesting(
() ->
@@ -761,19 +754,17 @@
: null);
// Perform minification.
- NamingLens namingLens;
if (options.getProguardConfiguration().hasApplyMappingFile()) {
timing.begin("apply-mapping");
- namingLens = new ProguardMapMinifier(appView.withLiveness()).run(executorService, timing);
+ appView.setNamingLens(
+ new ProguardMapMinifier(appView.withLiveness()).run(executorService, timing));
timing.end();
// Clear the applymapping data
appView.clearApplyMappingSeedMapper();
} else if (options.isMinifying()) {
timing.begin("Minification");
- namingLens = new Minifier(appView.withLiveness()).run(executorService, timing);
+ appView.setNamingLens(new Minifier(appView.withLiveness()).run(executorService, timing));
timing.end();
- } else {
- namingLens = NamingLens.getIdentityLens();
}
assert verifyMovedMethodsHaveOriginalMethodPosition(appView, getDirectApp(appView));
@@ -808,16 +799,16 @@
options.syntheticProguardRulesConsumer.accept(synthesizedProguardRules);
}
- namingLens = PrefixRewritingNamingLens.createPrefixRewritingNamingLens(appView, namingLens);
- namingLens = RecordRewritingNamingLens.createRecordRewritingNamingLens(appView, namingLens);
+ appView.setNamingLens(PrefixRewritingNamingLens.createPrefixRewritingNamingLens(appView));
+ appView.setNamingLens(RecordRewritingNamingLens.createRecordRewritingNamingLens(appView));
new ApiReferenceStubber(appView).run(executorService);
timing.begin("MinifyKotlinMetadata");
- new KotlinMetadataRewriter(appView, namingLens).runForR8(executorService);
+ new KotlinMetadataRewriter(appView).runForR8(executorService);
timing.end();
- new GenericSignatureRewriter(appView, namingLens, genericContextBuilderBeforeFinalMerging)
+ new GenericSignatureRewriter(appView, genericContextBuilderBeforeFinalMerging)
.run(appView.appInfo().classes(), executorService);
assert appView.checkForTesting(
@@ -829,15 +820,10 @@
.isValid())
: "Could not validate generic signatures";
- new DesugaredLibraryKeepRuleGenerator(appView, namingLens).runIfNecessary(timing);
+ new DesugaredLibraryKeepRuleGenerator(appView).runIfNecessary(timing);
// Generate the resulting application resources.
- writeApplication(
- executorService,
- appView,
- namingLens,
- options,
- inputApp);
+ writeApplication(appView, inputApp, executorService);
assert appView.getDontWarnConfiguration().validate(options);
diff --git a/src/main/java/com/android/tools/r8/bisect/Bisect.java b/src/main/java/com/android/tools/r8/bisect/Bisect.java
index 4228cf4..c7547a8 100644
--- a/src/main/java/com/android/tools/r8/bisect/Bisect.java
+++ b/src/main/java/com/android/tools/r8/bisect/Bisect.java
@@ -14,7 +14,6 @@
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexApplication;
import com.android.tools.r8.graph.DexProgramClass;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.synthesis.SyntheticItems.GlobalSyntheticsStrategy;
import com.android.tools.r8.utils.AndroidApp;
import com.android.tools.r8.utils.AndroidAppConsumers;
@@ -175,7 +174,7 @@
}
private DexApplication readApp(Path apk, InternalOptions options, ExecutorService executor)
- throws IOException, ExecutionException {
+ throws IOException {
AndroidApp app = AndroidApp.builder().addProgramFiles(apk).build();
return new ApplicationReader(app, options, timing).read(executor);
}
@@ -191,8 +190,7 @@
new ApplicationWriter(
AppView.createForD8(
AppInfo.createInitialAppInfo(app, GlobalSyntheticsStrategy.forNonSynthesizing())),
- null,
- NamingLens.getIdentityLens());
+ null);
writer.write(executor);
options.signalFinishedToConsumers();
compatSink.build().writeToDirectory(output, OutputMode.DexIndexed);
diff --git a/src/main/java/com/android/tools/r8/debuginfo/DebugRepresentation.java b/src/main/java/com/android/tools/r8/debuginfo/DebugRepresentation.java
index 634f40b..e9b23e7 100644
--- a/src/main/java/com/android/tools/r8/debuginfo/DebugRepresentation.java
+++ b/src/main/java/com/android/tools/r8/debuginfo/DebugRepresentation.java
@@ -5,15 +5,14 @@
import com.android.tools.r8.dex.VirtualFile;
import com.android.tools.r8.dex.code.DexInstruction;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexCode;
import com.android.tools.r8.graph.DexDebugInfo;
import com.android.tools.r8.graph.DexDebugInfo.PcBasedDebugInfo;
import com.android.tools.r8.graph.DexEncodedMethod;
import com.android.tools.r8.graph.DexProgramClass;
import com.android.tools.r8.graph.DexString;
-import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ProgramMethod;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.utils.InternalOptions;
import com.android.tools.r8.utils.LebUtils;
import com.android.tools.r8.utils.LineNumberOptimizer;
@@ -69,8 +68,8 @@
this.paramToInfo = paramToInfo;
}
- public static void computeForFile(
- VirtualFile file, GraphLens graphLens, NamingLens namingLens, InternalOptions options) {
+ public static void computeForFile(AppView<?> appView, VirtualFile file) {
+ InternalOptions options = appView.options();
if (!options.canUseDexPc2PcAsDebugInformation()
|| options.canUseNativeDexPcInsteadOfDebugInfo()
|| options.testing.forcePcBasedEncoding) {
@@ -81,7 +80,7 @@
Int2ReferenceMap<CostSummary> paramCountToCosts = new Int2ReferenceOpenHashMap<>();
for (DexProgramClass clazz : file.classes()) {
IdentityHashMap<DexString, List<ProgramMethod>> overloads =
- LineNumberOptimizer.groupMethodsByRenamedName(graphLens, namingLens, clazz);
+ LineNumberOptimizer.groupMethodsByRenamedName(appView, clazz);
for (List<ProgramMethod> methods : overloads.values()) {
if (methods.size() != 1) {
// Never use PC info for overloaded methods. They need distinct lines to disambiguate.
diff --git a/src/main/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryKeepRuleGenerator.java b/src/main/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryKeepRuleGenerator.java
index eaec5a0..8dc8979 100644
--- a/src/main/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryKeepRuleGenerator.java
+++ b/src/main/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryKeepRuleGenerator.java
@@ -44,13 +44,10 @@
public class DesugaredLibraryKeepRuleGenerator {
private final AppView<AppInfoWithClassHierarchy> appView;
- private final NamingLens namingLens;
private final InternalOptions options;
- public DesugaredLibraryKeepRuleGenerator(
- AppView<AppInfoWithClassHierarchy> appView, NamingLens namingLens) {
+ public DesugaredLibraryKeepRuleGenerator(AppView<AppInfoWithClassHierarchy> appView) {
this.appView = appView;
- this.namingLens = namingLens;
this.options = appView.options();
}
@@ -68,7 +65,7 @@
|| !options.testing.enableExperimentalDesugaredLibraryKeepRuleGenerator) {
return false;
}
- return namingLens.hasPrefixRewritingLogic()
+ return appView.getNamingLens().hasPrefixRewritingLogic()
|| options.machineDesugaredLibrarySpecification.hasEmulatedInterfaces();
}
@@ -83,6 +80,7 @@
byte[] synthesizedLibraryClassesPackageDescriptorPrefix =
DexString.encodeToMutf8(
"L" + desugaredLibrarySpecification.getSynthesizedLibraryClassesPackagePrefix());
+ NamingLens namingLens = appView.getNamingLens();
return type ->
namingLens.prefixRewrittenType(type) != null
|| desugaredLibrarySpecification.isEmulatedInterfaceRewrittenType(type)
@@ -91,7 +89,7 @@
}
private KeepRuleGenerator createTraceReferencesConsumer() {
- return new KeepRuleGenerator(appView, namingLens);
+ return new KeepRuleGenerator(appView);
}
private static class KeepRuleGenerator extends TraceReferencesConsumer.ForwardingConsumer {
@@ -111,14 +109,13 @@
// ArrayReference to DexType, nor conversions from (formal types, return type) to DexProto.
private final Map<TypeReference, DexType> typeConversionCache = new ConcurrentHashMap<>();
- private KeepRuleGenerator(
- AppView<? extends AppInfoWithClassHierarchy> appView, NamingLens namingLens) {
+ private KeepRuleGenerator(AppView<? extends AppInfoWithClassHierarchy> appView) {
super(
TraceReferencesKeepRules.builder()
.setOutputConsumer(appView.options().desugaredLibraryKeepRuleConsumer)
.build());
this.factory = appView.dexItemFactory();
- this.namingLens = namingLens;
+ this.namingLens = appView.getNamingLens();
}
@Override
diff --git a/src/main/java/com/android/tools/r8/dex/ApplicationWriter.java b/src/main/java/com/android/tools/r8/dex/ApplicationWriter.java
index de006e9..62909df 100644
--- a/src/main/java/com/android/tools/r8/dex/ApplicationWriter.java
+++ b/src/main/java/com/android/tools/r8/dex/ApplicationWriter.java
@@ -83,7 +83,6 @@
public class ApplicationWriter {
public final AppView<?> appView;
- public final NamingLens namingLens;
public final InternalOptions options;
private final CodeToKeep desugaredLibraryCodeToKeep;
private final Predicate<DexType> isTypeMissing;
@@ -157,32 +156,30 @@
}
}
- public ApplicationWriter(
- AppView<?> appView,
- List<Marker> markers,
- NamingLens namingLens) {
+ public ApplicationWriter(AppView<?> appView, List<Marker> markers) {
this(
appView,
markers,
- namingLens,
null);
}
public ApplicationWriter(
AppView<?> appView,
List<Marker> markers,
- NamingLens namingLens,
DexIndexedConsumer consumer) {
this.appView = appView;
this.options = appView.options();
- this.desugaredLibraryCodeToKeep = CodeToKeep.createCodeToKeep(options, namingLens);
+ this.desugaredLibraryCodeToKeep = CodeToKeep.createCodeToKeep(appView);
this.markers = markers;
- this.namingLens = namingLens;
this.programConsumer = consumer;
this.isTypeMissing =
PredicateUtils.isNull(appView.appInfo()::definitionForWithoutExistenceAssert);
}
+ private NamingLens getNamingLens() {
+ return appView.getNamingLens();
+ }
+
private List<VirtualFile> distribute(ExecutorService executorService)
throws ExecutionException, IOException {
Collection<DexProgramClass> classes = appView.appInfo().classes();
@@ -242,12 +239,12 @@
Collection<DexProgramClass> classes = appView.appInfo().classes();
Reference2LongMap<DexString> inputChecksums = new Reference2LongOpenHashMap<>(classes.size());
for (DexProgramClass clazz : classes) {
- inputChecksums.put(namingLens.lookupDescriptor(clazz.getType()), clazz.getChecksum());
+ inputChecksums.put(getNamingLens().lookupDescriptor(clazz.getType()), clazz.getChecksum());
}
for (VirtualFile file : files) {
ClassesChecksum toWrite = new ClassesChecksum();
for (DexProgramClass clazz : file.classes()) {
- DexString desc = namingLens.lookupDescriptor(clazz.type);
+ DexString desc = getNamingLens().lookupDescriptor(clazz.type);
toWrite.addChecksum(desc.toString(), inputChecksums.getLong(desc));
}
file.injectString(appView.dexItemFactory().createString(toWrite.toJsonString()));
@@ -307,7 +304,7 @@
// TODO(b/151313617): Sorting annotations mutates elements so run single threaded on main.
timing.begin("Sort Annotations");
- SortAnnotations sortAnnotations = new SortAnnotations(namingLens);
+ SortAnnotations sortAnnotations = new SortAnnotations(getNamingLens());
appView.appInfo().classes().forEach((clazz) -> clazz.addDependencies(sortAnnotations));
timing.end();
@@ -322,8 +319,7 @@
Timing fileTiming = Timing.create("VirtualFile " + virtualFile.getId(), options);
computeOffsetMappingAndRewriteJumboStrings(
virtualFile, lazyDexStrings, fileTiming);
- DebugRepresentation.computeForFile(
- virtualFile, appView.graphLens(), namingLens, options);
+ DebugRepresentation.computeForFile(appView, virtualFile);
fileTiming.end();
return fileTiming;
},
@@ -339,8 +335,7 @@
DebugRepresentationPredicate representation =
DebugRepresentation.fromFiles(virtualFiles, options);
delayedProguardMapId.set(
- runAndWriteMap(
- inputApp, appView, namingLens, timing, originalSourceFiles, representation));
+ runAndWriteMap(inputApp, appView, timing, originalSourceFiles, representation));
}
// With the mapping id/hash known, it is safe to compute the remaining dex strings.
@@ -368,7 +363,7 @@
merger.add(timings);
merger.end();
if (globalsSyntheticsConsumer != null) {
- globalsSyntheticsConsumer.finished(appView, namingLens);
+ globalsSyntheticsConsumer.finished(appView);
}
}
@@ -380,7 +375,7 @@
// Fail if there are pending errors, e.g., the program consumers may have reported errors.
options.reporter.failIfPendingErrors();
// Supply info to all additional resource consumers.
- supplyAdditionalConsumers(appView.appInfo().app(), appView, namingLens, options);
+ supplyAdditionalConsumers(appView);
} finally {
timing.end();
}
@@ -484,7 +479,7 @@
return;
}
timing.begin("Compute object offset mapping");
- virtualFile.computeMapping(appView, namingLens, lazyDexStrings.size(), timing);
+ virtualFile.computeMapping(appView, lazyDexStrings.size(), timing);
timing.end();
timing.begin("Rewrite jumbo strings");
rewriteCodeWithJumboStrings(
@@ -550,11 +545,8 @@
byteBufferProvider.releaseByteBuffer(result.buffer.asByteBuffer());
}
- public static void supplyAdditionalConsumers(
- DexApplication application,
- AppView<?> appView,
- NamingLens namingLens,
- InternalOptions options) {
+ public static void supplyAdditionalConsumers(AppView<?> appView) {
+ InternalOptions options = appView.options();
if (options.configurationConsumer != null) {
ExceptionUtils.withConsumeResourceHandler(
options.reporter, options.configurationConsumer,
@@ -563,22 +555,22 @@
}
if (options.mainDexListConsumer != null) {
ExceptionUtils.withConsumeResourceHandler(
- options.reporter, options.mainDexListConsumer, writeMainDexList(appView, namingLens));
+ options.reporter, options.mainDexListConsumer, writeMainDexList(appView));
ExceptionUtils.withFinishedResourceHandler(options.reporter, options.mainDexListConsumer);
}
DataResourceConsumer dataResourceConsumer = options.dataResourceConsumer;
if (dataResourceConsumer != null) {
- ImmutableList<DataResourceProvider> dataResourceProviders = application.dataResourceProviders;
- ResourceAdapter resourceAdapter =
- new ResourceAdapter(appView, application.dexItemFactory, namingLens, options);
-
+ ImmutableList<DataResourceProvider> dataResourceProviders =
+ appView.app().dataResourceProviders;
+ ResourceAdapter resourceAdapter = new ResourceAdapter(appView);
adaptAndPassDataResources(
options, dataResourceConsumer, dataResourceProviders, resourceAdapter);
// Write the META-INF/services resources. Sort on service names and keep the order from
// the input for the implementation lines for deterministic output.
if (!appView.appServices().isEmpty()) {
+ NamingLens namingLens = appView.getNamingLens();
appView
.appServices()
.visit(
@@ -605,8 +597,7 @@
if (options.featureSplitConfiguration != null) {
for (DataResourceProvidersAndConsumer entry :
options.featureSplitConfiguration.getDataResourceProvidersAndConsumers()) {
- ResourceAdapter resourceAdapter =
- new ResourceAdapter(appView, application.dexItemFactory, namingLens, options);
+ ResourceAdapter resourceAdapter = new ResourceAdapter(appView);
adaptAndPassDataResources(
options, entry.getConsumer(), entry.getProviders(), resourceAdapter);
}
@@ -704,7 +695,7 @@
} else {
annotations.add(
DexAnnotation.createInnerClassAnnotation(
- namingLens.lookupInnerName(innerClass, options),
+ getNamingLens().lookupInnerName(innerClass, options),
innerClass.getAccess(),
options.itemFactory));
if (innerClass.getOuter() != null && innerClass.isNamed()) {
@@ -726,7 +717,7 @@
if (clazz.getClassSignature().hasSignature()) {
annotations.add(
DexAnnotation.createSignatureAnnotation(
- clazz.getClassSignature().toRenamedString(namingLens, isTypeMissing),
+ clazz.getClassSignature().toRenamedString(getNamingLens(), isTypeMissing),
options.itemFactory));
}
@@ -756,7 +747,7 @@
ArrayUtils.appendSingleElement(
field.annotations().annotations,
DexAnnotation.createSignatureAnnotation(
- field.getGenericSignature().toRenamedString(namingLens, isTypeMissing),
+ field.getGenericSignature().toRenamedString(getNamingLens(), isTypeMissing),
options.itemFactory))));
field.clearGenericSignature();
}
@@ -771,7 +762,7 @@
ArrayUtils.appendSingleElement(
method.annotations().annotations,
DexAnnotation.createSignatureAnnotation(
- method.getGenericSignature().toRenamedString(namingLens, isTypeMissing),
+ method.getGenericSignature().toRenamedString(getNamingLens(), isTypeMissing),
options.itemFactory))));
method.clearGenericSignature();
}
@@ -829,7 +820,7 @@
private ByteBufferResult writeDexFile(
ObjectToOffsetMapping objectMapping, ByteBufferProvider provider, Timing timing) {
FileWriter fileWriter =
- new FileWriter(appView, provider, objectMapping, namingLens, desugaredLibraryCodeToKeep);
+ new FileWriter(appView, provider, objectMapping, desugaredLibraryCodeToKeep);
// Collect the non-fixed sections.
timing.time("collect", fileWriter::collect);
// Generate and write the bytes.
@@ -841,7 +832,7 @@
.replace('.', '/') + ".class";
}
- private static String writeMainDexList(AppView<?> appView, NamingLens namingLens) {
+ private static String writeMainDexList(AppView<?> appView) {
// TODO(b/178231294): Clean up by streaming directly to the consumer.
MainDexInfo mainDexInfo = appView.appInfo().getMainDexInfo();
StringBuilder builder = new StringBuilder();
@@ -849,7 +840,7 @@
mainDexInfo.forEach(list::add);
list.sort(DexType::compareTo);
list.forEach(
- type -> builder.append(mapMainDexListName(type, namingLens)).append('\n'));
+ type -> builder.append(mapMainDexListName(type, appView.getNamingLens())).append('\n'));
return builder.toString();
}
diff --git a/src/main/java/com/android/tools/r8/dex/CodeToKeep.java b/src/main/java/com/android/tools/r8/dex/CodeToKeep.java
index 6b77d5b..5a0ec34 100644
--- a/src/main/java/com/android/tools/r8/dex/CodeToKeep.java
+++ b/src/main/java/com/android/tools/r8/dex/CodeToKeep.java
@@ -5,6 +5,7 @@
package com.android.tools.r8.dex;
import com.android.tools.r8.errors.Unreachable;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexField;
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.DexProgramClass;
@@ -24,7 +25,9 @@
public abstract class CodeToKeep {
- static CodeToKeep createCodeToKeep(InternalOptions options, NamingLens namingLens) {
+ static CodeToKeep createCodeToKeep(AppView<?> appView) {
+ InternalOptions options = appView.options();
+ NamingLens namingLens = appView.getNamingLens();
if ((!namingLens.hasPrefixRewritingLogic()
&& options.machineDesugaredLibrarySpecification.getMaintainType().isEmpty()
&& !options.machineDesugaredLibrarySpecification.hasEmulatedInterfaces())
@@ -32,7 +35,7 @@
|| options.testing.enableExperimentalDesugaredLibraryKeepRuleGenerator) {
return new NopCodeToKeep();
}
- return new DesugaredLibraryCodeToKeep(namingLens, options);
+ return new DesugaredLibraryCodeToKeep(appView);
}
public abstract void recordMethod(DexMethod method);
@@ -58,17 +61,16 @@
boolean all = false;
}
- private final NamingLens namingLens;
+ private final AppView<?> appView;
private final Map<DexType, KeepStruct> toKeep = new ConcurrentHashMap<>();
- private final InternalOptions options;
- public DesugaredLibraryCodeToKeep(NamingLens namingLens, InternalOptions options) {
- this.namingLens = namingLens;
- this.options = options;
+ public DesugaredLibraryCodeToKeep(AppView<?> appView) {
+ this.appView = appView;
}
private boolean shouldKeep(DexType givenType) {
- if (namingLens.prefixRewrittenType(givenType) != null
+ InternalOptions options = appView.options();
+ if (appView.getNamingLens().prefixRewrittenType(givenType) != null
|| options.machineDesugaredLibrarySpecification.isCustomConversionRewrittenType(givenType)
|| options.machineDesugaredLibrarySpecification.isEmulatedInterfaceRewrittenType(
givenType)
@@ -84,14 +86,14 @@
DexType type =
InterfaceDesugaringSyntheticHelper.isCompanionClassType(givenType)
? InterfaceDesugaringSyntheticHelper.getInterfaceClassType(
- givenType, options.dexItemFactory())
+ givenType, appView.dexItemFactory())
: givenType;
return options.machineDesugaredLibrarySpecification.getMaintainType().contains(type);
}
@Override
public void recordMethod(DexMethod method) {
- DexType baseType = method.holder.toBaseType(options.dexItemFactory());
+ DexType baseType = method.holder.toBaseType(appView.dexItemFactory());
if (shouldKeep(baseType)) {
keepClass(baseType);
if (!method.holder.isArrayType()) {
@@ -110,7 +112,7 @@
@Override
public void recordField(DexField field) {
- DexType baseType = field.holder.toBaseType(options.dexItemFactory());
+ DexType baseType = field.holder.toBaseType(appView.dexItemFactory());
if (shouldKeep(baseType)) {
keepClass(baseType);
if (!field.holder.isArrayType()) {
@@ -146,7 +148,7 @@
}
private void keepClass(DexType type) {
- DexType baseType = type.lookupBaseType(options.itemFactory);
+ DexType baseType = type.lookupBaseType(appView.dexItemFactory());
toKeep.putIfAbsent(baseType, new KeepStruct());
}
@@ -156,7 +158,7 @@
}
private String convertType(DexType type) {
- DexString rewriteType = namingLens.prefixRewrittenType(type);
+ DexString rewriteType = appView.getNamingLens().prefixRewrittenType(type);
DexString descriptor = rewriteType != null ? rewriteType : type.descriptor;
return DescriptorUtils.descriptorToJavaType(descriptor.toString());
}
@@ -166,13 +168,6 @@
// TODO(b/134734081): Stream the consumer instead of building the String.
StringBuilder sb = new StringBuilder();
String cr = System.lineSeparator();
- Comparator<DexReference> comparator =
- new Comparator<DexReference>() {
- @Override
- public int compare(DexReference o1, DexReference o2) {
- return o1.compareTo(o2);
- }
- };
for (DexType type : CollectionUtils.sort(toKeep.keySet(), getComparator())) {
KeepStruct keepStruct = toKeep.get(type);
sb.append("-keep class ").append(convertType(type));
@@ -214,12 +209,7 @@
}
private static <T extends DexReference> Comparator<T> getComparator() {
- return new Comparator<T>() {
- @Override
- public int compare(T o1, T o2) {
- return o1.compareTo(o2);
- }
- };
+ return DexReference::compareTo;
}
}
diff --git a/src/main/java/com/android/tools/r8/dex/FileWriter.java b/src/main/java/com/android/tools/r8/dex/FileWriter.java
index 245acb3..bc3a515 100644
--- a/src/main/java/com/android/tools/r8/dex/FileWriter.java
+++ b/src/main/java/com/android/tools/r8/dex/FileWriter.java
@@ -91,7 +91,6 @@
private final AppView<?> appView;
private final GraphLens graphLens;
private final ObjectToOffsetMapping mapping;
- private final NamingLens namingLens;
private final InternalOptions options;
private final DexOutputBuffer dest;
private final MixedSectionOffsets mixedSectionOffsets;
@@ -102,18 +101,20 @@
AppView<?> appView,
ByteBufferProvider provider,
ObjectToOffsetMapping mapping,
- NamingLens namingLens,
CodeToKeep desugaredLibraryCodeToKeep) {
this.appView = appView;
this.graphLens = appView.graphLens();
this.mapping = mapping;
- this.namingLens = namingLens;
this.options = appView.options();
this.dest = new DexOutputBuffer(provider);
this.mixedSectionOffsets = new MixedSectionOffsets(options);
this.desugaredLibraryCodeToKeep = desugaredLibraryCodeToKeep;
}
+ private NamingLens getNamingLens() {
+ return appView.getNamingLens();
+ }
+
public static void writeEncodedAnnotation(
DexEncodedAnnotation annotation, DexOutputBuffer dest, ObjectToOffsetMapping mapping) {
if (Log.ENABLED) {
@@ -410,7 +411,7 @@
}
private void writeTypeItem(DexType type) {
- DexString descriptor = namingLens.lookupDescriptor(type);
+ DexString descriptor = getNamingLens().lookupDescriptor(type);
dest.putInt(mapping.getOffsetFor(descriptor));
}
@@ -427,7 +428,7 @@
int typeIdx = mapping.getOffsetFor(field.type);
assert (typeIdx & 0xFFFF) == typeIdx;
dest.putShort((short) typeIdx);
- DexString name = namingLens.lookupName(field);
+ DexString name = getNamingLens().lookupName(field);
dest.putInt(mapping.getOffsetFor(name));
}
@@ -438,7 +439,7 @@
int protoIdx = mapping.getOffsetFor(method.proto);
assert (protoIdx & 0xFFFF) == protoIdx;
dest.putShort((short) protoIdx);
- DexString name = namingLens.lookupName(method);
+ DexString name = getNamingLens().lookupName(method);
dest.putInt(mapping.getOffsetFor(name));
}
@@ -662,7 +663,7 @@
// We have collected the individual components of this array due to the data stored in
// DexEncodedField#staticValues. However, we have to collect the DexEncodedArray itself
// here.
- DexEncodedArray staticValues = clazz.computeStaticValuesArray(namingLens);
+ DexEncodedArray staticValues = clazz.computeStaticValuesArray(getNamingLens());
if (staticValues != null) {
staticFieldValues.put(clazz, staticValues);
mixedSectionOffsets.add(staticValues);
diff --git a/src/main/java/com/android/tools/r8/dex/IndexedItemCollection.java b/src/main/java/com/android/tools/r8/dex/IndexedItemCollection.java
index 1de1144..4da7302 100644
--- a/src/main/java/com/android/tools/r8/dex/IndexedItemCollection.java
+++ b/src/main/java/com/android/tools/r8/dex/IndexedItemCollection.java
@@ -12,9 +12,7 @@
import com.android.tools.r8.graph.DexProto;
import com.android.tools.r8.graph.DexString;
import com.android.tools.r8.graph.DexType;
-import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.IndexedDexItem;
-import com.android.tools.r8.graph.InitClassLens;
/**
* Common interface for constant pools.
@@ -101,14 +99,6 @@
*/
boolean addMethodHandle(DexMethodHandle methodHandle);
- default GraphLens getGraphLens() {
- return GraphLens.getIdentityLens();
- }
-
- default InitClassLens getInitClassLens() {
- return InitClassLens.getThrowingInstance();
- }
-
default DexString getRenamedName(DexMethod method) {
return method.name;
}
diff --git a/src/main/java/com/android/tools/r8/dex/InheritanceClassInDexDistributor.java b/src/main/java/com/android/tools/r8/dex/InheritanceClassInDexDistributor.java
index 9978311..c78eaac 100644
--- a/src/main/java/com/android/tools/r8/dex/InheritanceClassInDexDistributor.java
+++ b/src/main/java/com/android/tools/r8/dex/InheritanceClassInDexDistributor.java
@@ -10,7 +10,6 @@
import com.android.tools.r8.graph.DexClass;
import com.android.tools.r8.graph.DexProgramClass;
import com.android.tools.r8.graph.DexType;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.utils.IntBox;
import com.android.tools.r8.utils.ThreadUtils;
import com.google.common.collect.Maps;
@@ -70,7 +69,7 @@
public void updateNumbersOfIds() {
// Use a temporary VirtualFile to evaluate the number of ids in the group.
- VirtualFile virtualFile = new VirtualFile(0, appView, namingLens);
+ VirtualFile virtualFile = new VirtualFile(0, appView);
// Note: sort not needed.
for (DexProgramClass clazz : members) {
virtualFile.addClass(clazz);
@@ -286,7 +285,6 @@
private final Set<DexProgramClass> classes;
private final AppView<?> appView;
private final IntBox nextFileId;
- private final NamingLens namingLens;
private final DirectSubClassesInfo directSubClasses;
public InheritanceClassInDexDistributor(
@@ -295,7 +293,6 @@
List<VirtualFile> filesForDistribution,
Set<DexProgramClass> classes,
IntBox nextFileId,
- NamingLens namingLens,
AppView<?> appView,
ExecutorService executorService) {
this.mainDex = mainDex;
@@ -303,7 +300,6 @@
this.filesForDistribution = filesForDistribution;
this.classes = classes;
this.nextFileId = nextFileId;
- this.namingLens = namingLens;
this.appView = appView;
this.executorService = executorService;
@@ -320,7 +316,7 @@
// Allocate member of groups depending on
// the main dex members
VirtualFileCycler cycler =
- new VirtualFileCycler(files, filesForDistribution, appView, namingLens, nextFileId);
+ new VirtualFileCycler(files, filesForDistribution, appView, nextFileId);
for (Iterator<ClassGroup> iter = remainingInheritanceGroups.iterator(); iter.hasNext();) {
ClassGroup group = iter.next();
if (group.dependsOnMainDexClasses) {
diff --git a/src/main/java/com/android/tools/r8/dex/ResourceAdapter.java b/src/main/java/com/android/tools/r8/dex/ResourceAdapter.java
index eaf736d..e249186 100644
--- a/src/main/java/com/android/tools/r8/dex/ResourceAdapter.java
+++ b/src/main/java/com/android/tools/r8/dex/ResourceAdapter.java
@@ -37,16 +37,12 @@
private final NamingLens namingLens;
private final InternalOptions options;
- public ResourceAdapter(
- AppView<?> appView,
- DexItemFactory dexItemFactory,
- NamingLens namingLens,
- InternalOptions options) {
+ public ResourceAdapter(AppView<?> appView) {
this.appView = appView;
- this.dexItemFactory = dexItemFactory;
+ this.dexItemFactory = appView.dexItemFactory();
this.graphLens = appView.graphLens();
- this.namingLens = namingLens;
- this.options = options;
+ this.namingLens = appView.getNamingLens();
+ this.options = appView.options();
}
public DataEntryResource adaptIfNeeded(DataEntryResource file) {
diff --git a/src/main/java/com/android/tools/r8/dex/VirtualFile.java b/src/main/java/com/android/tools/r8/dex/VirtualFile.java
index d5995f4..4ca4b2b 100644
--- a/src/main/java/com/android/tools/r8/dex/VirtualFile.java
+++ b/src/main/java/com/android/tools/r8/dex/VirtualFile.java
@@ -79,38 +79,32 @@
private final DexProgramClass primaryClass;
private DebugRepresentation debugRepresentation;
- VirtualFile(
- int id,
- AppView<?> appView,
- NamingLens namingLens) {
- this(id, appView, namingLens, null, null);
+ VirtualFile(int id, AppView<?> appView) {
+ this(id, appView, null, null);
}
VirtualFile(
int id,
AppView<?> appView,
- NamingLens namingLens,
FeatureSplit featureSplit) {
- this(id, appView, namingLens, null, featureSplit);
+ this(id, appView, null, featureSplit);
}
private VirtualFile(
int id,
AppView<?> appView,
- NamingLens namingLens,
DexProgramClass primaryClass) {
- this(id, appView, namingLens, primaryClass, null);
+ this(id, appView, primaryClass, null);
}
private VirtualFile(
int id,
AppView<?> appView,
- NamingLens namingLens,
DexProgramClass primaryClass,
FeatureSplit featureSplit) {
this.id = id;
- this.indexedItems = new VirtualFileIndexedItemCollection(appView, namingLens);
- this.transaction = new IndexedItemTransaction(indexedItems, appView, namingLens);
+ this.indexedItems = new VirtualFileIndexedItemCollection(appView);
+ this.transaction = new IndexedItemTransaction(indexedItems, appView);
this.primaryClass = primaryClass;
this.featureSplit = featureSplit;
}
@@ -199,7 +193,6 @@
public void computeMapping(
AppView<?> appView,
- NamingLens namingLens,
int lazyDexStringsCount,
Timing timing) {
assert transaction.isEmpty();
@@ -207,7 +200,6 @@
objectMapping =
new ObjectToOffsetMapping(
appView,
- namingLens,
transaction.rewriter,
indexedItems.classes,
indexedItems.protos,
@@ -326,8 +318,7 @@
// duplicated.
if (!combineSyntheticClassesWithPrimaryClass
|| !appView.getSyntheticItems().isSyntheticClass(clazz)) {
- VirtualFile file =
- new VirtualFile(virtualFiles.size(), appView, writer.namingLens, clazz);
+ VirtualFile file = new VirtualFile(virtualFiles.size(), appView, clazz);
virtualFiles.add(file);
file.addClass(clazz);
files.put(clazz, file);
@@ -365,7 +356,7 @@
this.classes = SetUtils.newIdentityHashSet(classes);
// Create the primary dex file. The distribution will add more if needed.
- mainDexFile = new VirtualFile(0, appView, writer.namingLens);
+ mainDexFile = new VirtualFile(0, appView);
assert virtualFiles.isEmpty();
virtualFiles.add(mainDexFile);
addMarkers(mainDexFile);
@@ -446,7 +437,6 @@
new VirtualFile(
nextFileId.getAndIncrement(),
appView,
- writer.namingLens,
featureSplitSetEntry.getKey());
virtualFiles.add(featureFile);
addMarkers(featureFile);
@@ -458,8 +448,7 @@
appView,
featureSplitSetEntry.getValue(),
originalNames,
- nextFileId,
- writer.namingLens)
+ nextFileId)
.run();
}
}
@@ -510,19 +499,12 @@
filesForDistribution,
classes,
nextFileId,
- writer.namingLens,
appView,
executorService)
.distribute();
} else {
new PackageSplitPopulator(
- virtualFiles,
- filesForDistribution,
- appView,
- classes,
- originalNames,
- nextFileId,
- writer.namingLens)
+ virtualFiles, filesForDistribution, appView, classes, originalNames, nextFileId)
.run();
}
addFeatureSplitFiles(featureSplitClasses);
@@ -573,10 +555,10 @@
private final Set<DexCallSite> callSites = Sets.newIdentityHashSet();
private final Set<DexMethodHandle> methodHandles = Sets.newIdentityHashSet();
- public VirtualFileIndexedItemCollection(AppView<?> appView, NamingLens namingLens) {
+ public VirtualFileIndexedItemCollection(AppView<?> appView) {
this.graphLens = appView.graphLens();
this.initClassLens = appView.initClassLens();
- this.namingLens = namingLens;
+ this.namingLens = appView.getNamingLens();
}
@Override
@@ -633,16 +615,6 @@
}
@Override
- public GraphLens getGraphLens() {
- return graphLens;
- }
-
- @Override
- public InitClassLens getInitClassLens() {
- return initClassLens;
- }
-
- @Override
public DexString getRenamedDescriptor(DexType type) {
return namingLens.lookupDescriptor(type);
}
@@ -664,8 +636,6 @@
private final AppView<?> appView;
private final VirtualFileIndexedItemCollection base;
- private final InitClassLens initClassLens;
- private final NamingLens namingLens;
private final LensCodeRewriterUtils rewriter;
private final Set<DexProgramClass> classes = new LinkedHashSet<>();
@@ -677,17 +647,16 @@
private final Set<DexCallSite> callSites = new LinkedHashSet<>();
private final Set<DexMethodHandle> methodHandles = new LinkedHashSet<>();
- private IndexedItemTransaction(
- VirtualFileIndexedItemCollection base,
- AppView<?> appView,
- NamingLens namingLens) {
+ private IndexedItemTransaction(VirtualFileIndexedItemCollection base, AppView<?> appView) {
this.appView = appView;
this.base = base;
- this.initClassLens = appView.initClassLens();
- this.namingLens = namingLens;
this.rewriter = new LensCodeRewriterUtils(appView, true);
}
+ private NamingLens getNamingLens() {
+ return appView.getNamingLens();
+ }
+
private <T extends DexItem> boolean maybeInsert(T item, Set<T> set, Set<T> baseSet) {
if (baseSet.contains(item) || set.contains(item)) {
return false;
@@ -697,7 +666,7 @@
}
void addClassAndDependencies(DexProgramClass clazz) {
- clazz.collectIndexedItems(this, getGraphLens(), rewriter);
+ clazz.collectIndexedItems(appView, this, rewriter);
}
@Override
@@ -742,29 +711,19 @@
}
@Override
- public GraphLens getGraphLens() {
- return appView.graphLens();
- }
-
- @Override
- public InitClassLens getInitClassLens() {
- return initClassLens;
- }
-
- @Override
public DexString getRenamedDescriptor(DexType type) {
- return namingLens.lookupDescriptor(type);
+ return getNamingLens().lookupDescriptor(type);
}
@Override
public DexString getRenamedName(DexMethod method) {
- assert namingLens.verifyRenamingConsistentWithResolution(method);
- return namingLens.lookupName(method);
+ assert getNamingLens().verifyRenamingConsistentWithResolution(method);
+ return getNamingLens().lookupName(method);
}
@Override
public DexString getRenamedName(DexField field) {
- return namingLens.lookupName(field);
+ return getNamingLens().lookupName(field);
}
int getNumberOfMethods() {
@@ -830,7 +789,6 @@
private final List<VirtualFile> files;
private final List<VirtualFile> filesForDistribution;
private final AppView<?> appView;
- private final NamingLens namingLens;
private final IntBox nextFileId;
private Iterator<VirtualFile> allFilesCyclic;
@@ -841,12 +799,10 @@
List<VirtualFile> files,
List<VirtualFile> filesForDistribution,
AppView<?> appView,
- NamingLens namingLens,
IntBox nextFileId) {
this.files = files;
this.filesForDistribution = new ArrayList<>(filesForDistribution);
this.appView = appView;
- this.namingLens = namingLens;
this.nextFileId = nextFileId;
if (filesForDistribution.size() > 0) {
@@ -917,8 +873,7 @@
}
private VirtualFile internalAddFile() {
- VirtualFile newFile =
- new VirtualFile(nextFileId.getAndIncrement(), appView, namingLens, featureSplit);
+ VirtualFile newFile = new VirtualFile(nextFileId.getAndIncrement(), appView, featureSplit);
files.add(newFile);
filesForDistribution.add(newFile);
return newFile;
@@ -1061,14 +1016,12 @@
AppView<?> appView,
Collection<DexProgramClass> classes,
Map<DexProgramClass, String> originalNames,
- IntBox nextFileId,
- NamingLens namingLens) {
+ IntBox nextFileId) {
this.classPartioning = PackageSplitClassPartioning.create(classes, appView, originalNames);
this.originalNames = originalNames;
this.dexItemFactory = appView.dexItemFactory();
this.options = appView.options();
- this.cycler =
- new VirtualFileCycler(files, filesForDistribution, appView, namingLens, nextFileId);
+ this.cycler = new VirtualFileCycler(files, filesForDistribution, appView, nextFileId);
}
static boolean coveredByPrefix(String originalName, String currentPrefix) {
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexCheckCast.java b/src/main/java/com/android/tools/r8/dex/code/DexCheckCast.java
index 06f7a38..939866d 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexCheckCast.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexCheckCast.java
@@ -4,6 +4,7 @@
package com.android.tools.r8.dex.code;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
@@ -60,11 +61,11 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
- DexType rewritten = graphLens.lookupType(getType());
+ DexType rewritten = appView.graphLens().lookupType(getType());
rewritten.collectIndexedItems(indexedItems);
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexConstClass.java b/src/main/java/com/android/tools/r8/dex/code/DexConstClass.java
index cdff382..7fafee9 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexConstClass.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexConstClass.java
@@ -4,6 +4,7 @@
package com.android.tools.r8.dex.code;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
@@ -60,11 +61,11 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
- DexType rewritten = graphLens.lookupType(getType());
+ DexType rewritten = appView.graphLens().lookupType(getType());
rewritten.collectIndexedItems(indexedItems);
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexConstMethodHandle.java b/src/main/java/com/android/tools/r8/dex/code/DexConstMethodHandle.java
index c9eceef..fad4723 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexConstMethodHandle.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexConstMethodHandle.java
@@ -5,6 +5,7 @@
import com.android.tools.r8.dex.IndexedItemCollection;
import com.android.tools.r8.errors.InternalCompilerError;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexMethodHandle;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
@@ -92,9 +93,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
DexMethodHandle rewritten =
rewriter.rewriteDexMethodHandle(
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexConstMethodType.java b/src/main/java/com/android/tools/r8/dex/code/DexConstMethodType.java
index 5f73b75..25727a7 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexConstMethodType.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexConstMethodType.java
@@ -5,6 +5,7 @@
import com.android.tools.r8.dex.IndexedItemCollection;
import com.android.tools.r8.errors.InternalCompilerError;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexProto;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
@@ -88,9 +89,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
DexProto rewritten = rewriter.rewriteProto(getMethodType());
rewritten.collectIndexedItems(indexedItems);
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexConstString.java b/src/main/java/com/android/tools/r8/dex/code/DexConstString.java
index 04334a8..0117785 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexConstString.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexConstString.java
@@ -5,6 +5,7 @@
import com.android.tools.r8.dex.IndexedItemCollection;
import com.android.tools.r8.errors.InternalCompilerError;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexString;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
@@ -41,9 +42,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
getString().collectIndexedItems(indexedItems);
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFilledNewArray.java b/src/main/java/com/android/tools/r8/dex/code/DexFilledNewArray.java
index add1531..0813d05 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFilledNewArray.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFilledNewArray.java
@@ -4,6 +4,7 @@
package com.android.tools.r8.dex.code;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
@@ -44,11 +45,11 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
- DexType rewritten = graphLens.lookupType(getType());
+ DexType rewritten = appView.graphLens().lookupType(getType());
rewritten.collectIndexedItems(indexedItems);
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFilledNewArrayRange.java b/src/main/java/com/android/tools/r8/dex/code/DexFilledNewArrayRange.java
index c5938dc..c6544b2 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFilledNewArrayRange.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFilledNewArrayRange.java
@@ -4,6 +4,7 @@
package com.android.tools.r8.dex.code;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
@@ -44,11 +45,11 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
- DexType rewritten = graphLens.lookupType(getType());
+ DexType rewritten = appView.graphLens().lookupType(getType());
rewritten.collectIndexedItems(indexedItems);
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFormat10t.java b/src/main/java/com/android/tools/r8/dex/code/DexFormat10t.java
index dbbecdb..5ccccb9 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFormat10t.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFormat10t.java
@@ -4,6 +4,7 @@
package com.android.tools.r8.dex.code;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
import com.android.tools.r8.graph.ProgramMethod;
@@ -60,9 +61,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
// No references.
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFormat10x.java b/src/main/java/com/android/tools/r8/dex/code/DexFormat10x.java
index 72bfaee..3cb41fb 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFormat10x.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFormat10x.java
@@ -4,6 +4,7 @@
package com.android.tools.r8.dex.code;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
import com.android.tools.r8.graph.ProgramMethod;
@@ -43,9 +44,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
// No references.
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFormat11n.java b/src/main/java/com/android/tools/r8/dex/code/DexFormat11n.java
index 5010e51..20bec92 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFormat11n.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFormat11n.java
@@ -5,6 +5,7 @@
import com.android.tools.r8.dex.Constants;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
import com.android.tools.r8.graph.ProgramMethod;
@@ -69,9 +70,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
// No references.
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFormat11x.java b/src/main/java/com/android/tools/r8/dex/code/DexFormat11x.java
index d9b64d5..46d615b 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFormat11x.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFormat11x.java
@@ -5,6 +5,7 @@
import com.android.tools.r8.dex.Constants;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
import com.android.tools.r8.graph.ProgramMethod;
@@ -60,9 +61,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
// No references.
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFormat12x.java b/src/main/java/com/android/tools/r8/dex/code/DexFormat12x.java
index 74c0f70..29c2224 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFormat12x.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFormat12x.java
@@ -5,6 +5,7 @@
import com.android.tools.r8.dex.Constants;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
import com.android.tools.r8.graph.ProgramMethod;
@@ -68,9 +69,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
// No references.
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFormat20t.java b/src/main/java/com/android/tools/r8/dex/code/DexFormat20t.java
index da4183d..c63962f 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFormat20t.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFormat20t.java
@@ -4,6 +4,7 @@
package com.android.tools.r8.dex.code;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
import com.android.tools.r8.graph.ProgramMethod;
@@ -60,9 +61,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
// No references.
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFormat21h.java b/src/main/java/com/android/tools/r8/dex/code/DexFormat21h.java
index e9ea003..ae07163 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFormat21h.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFormat21h.java
@@ -5,6 +5,7 @@
import com.android.tools.r8.dex.Constants;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
import com.android.tools.r8.graph.ProgramMethod;
@@ -59,9 +60,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
// No references.
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFormat21s.java b/src/main/java/com/android/tools/r8/dex/code/DexFormat21s.java
index d38324f..1194963 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFormat21s.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFormat21s.java
@@ -5,6 +5,7 @@
import com.android.tools.r8.dex.Constants;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
import com.android.tools.r8.graph.ProgramMethod;
@@ -71,9 +72,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
// No references.
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFormat21t.java b/src/main/java/com/android/tools/r8/dex/code/DexFormat21t.java
index 877808b..21061c3 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFormat21t.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFormat21t.java
@@ -5,6 +5,7 @@
import com.android.tools.r8.dex.Constants;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
import com.android.tools.r8.graph.ProgramMethod;
@@ -89,9 +90,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
// No references.
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFormat22b.java b/src/main/java/com/android/tools/r8/dex/code/DexFormat22b.java
index eab6c99..5f3213e 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFormat22b.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFormat22b.java
@@ -5,6 +5,7 @@
import com.android.tools.r8.dex.Constants;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
import com.android.tools.r8.graph.ProgramMethod;
@@ -76,9 +77,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
// No references.
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFormat22s.java b/src/main/java/com/android/tools/r8/dex/code/DexFormat22s.java
index 7c2f81d..84921eb 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFormat22s.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFormat22s.java
@@ -5,6 +5,7 @@
import com.android.tools.r8.dex.Constants;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
import com.android.tools.r8.graph.ProgramMethod;
@@ -76,9 +77,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
// No references.
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFormat22t.java b/src/main/java/com/android/tools/r8/dex/code/DexFormat22t.java
index 88d1325..395ac6e 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFormat22t.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFormat22t.java
@@ -5,6 +5,7 @@
import com.android.tools.r8.dex.Constants;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
import com.android.tools.r8.graph.ProgramMethod;
@@ -93,9 +94,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
// No references.
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFormat22x.java b/src/main/java/com/android/tools/r8/dex/code/DexFormat22x.java
index 0db6f83..e7d6f0c 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFormat22x.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFormat22x.java
@@ -5,6 +5,7 @@
import com.android.tools.r8.dex.Constants;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
import com.android.tools.r8.graph.ProgramMethod;
@@ -70,9 +71,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
// No references.
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFormat23x.java b/src/main/java/com/android/tools/r8/dex/code/DexFormat23x.java
index 583cff3..ee90cf8 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFormat23x.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFormat23x.java
@@ -5,6 +5,7 @@
import com.android.tools.r8.dex.Constants;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
import com.android.tools.r8.graph.ProgramMethod;
@@ -74,9 +75,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
// No references.
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFormat30t.java b/src/main/java/com/android/tools/r8/dex/code/DexFormat30t.java
index b1372da..878cc7b 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFormat30t.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFormat30t.java
@@ -4,6 +4,7 @@
package com.android.tools.r8.dex.code;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
import com.android.tools.r8.graph.ProgramMethod;
@@ -59,9 +60,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
// No references.
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFormat31c.java b/src/main/java/com/android/tools/r8/dex/code/DexFormat31c.java
index b964ee3..82e033a 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFormat31c.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFormat31c.java
@@ -6,6 +6,7 @@
import static com.android.tools.r8.dex.Constants.U8BIT_MAX;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexString;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.IndexedDexItem;
@@ -69,9 +70,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
BBBBBBBB.collectIndexedItems(indexedItems);
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFormat31i.java b/src/main/java/com/android/tools/r8/dex/code/DexFormat31i.java
index 9014f21..04e57f1 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFormat31i.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFormat31i.java
@@ -5,6 +5,7 @@
import com.android.tools.r8.dex.Constants;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
import com.android.tools.r8.graph.ProgramMethod;
@@ -64,9 +65,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
// No references.
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFormat31t.java b/src/main/java/com/android/tools/r8/dex/code/DexFormat31t.java
index e9f1ae5..cc57a14 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFormat31t.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFormat31t.java
@@ -5,6 +5,7 @@
import com.android.tools.r8.dex.Constants;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
import com.android.tools.r8.graph.ProgramMethod;
@@ -79,9 +80,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
// No references.
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFormat32x.java b/src/main/java/com/android/tools/r8/dex/code/DexFormat32x.java
index c854dad..f9a7792 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFormat32x.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFormat32x.java
@@ -6,6 +6,7 @@
import static com.android.tools.r8.dex.Constants.U16BIT_MAX;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
import com.android.tools.r8.graph.ProgramMethod;
@@ -72,9 +73,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
// No references.
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFormat45cc.java b/src/main/java/com/android/tools/r8/dex/code/DexFormat45cc.java
index 58970bd..e09b9d5 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFormat45cc.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFormat45cc.java
@@ -6,6 +6,7 @@
import static com.android.tools.r8.dex.Constants.U4BIT_MAX;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.DexProto;
import com.android.tools.r8.graph.GraphLens;
@@ -95,12 +96,12 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
MethodLookupResult lookup =
- graphLens.lookupMethod(getMethod(), context.getReference(), Type.POLYMORPHIC);
+ appView.graphLens().lookupMethod(getMethod(), context.getReference(), Type.POLYMORPHIC);
assert lookup.getType() == Type.POLYMORPHIC;
lookup.getReference().collectIndexedItems(indexedItems);
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFormat4rcc.java b/src/main/java/com/android/tools/r8/dex/code/DexFormat4rcc.java
index f459f21..04dc240 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFormat4rcc.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFormat4rcc.java
@@ -5,6 +5,7 @@
import com.android.tools.r8.dex.Constants;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.DexProto;
import com.android.tools.r8.graph.GraphLens;
@@ -111,12 +112,12 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
MethodLookupResult lookup =
- graphLens.lookupMethod(getMethod(), context.getReference(), Type.POLYMORPHIC);
+ appView.graphLens().lookupMethod(getMethod(), context.getReference(), Type.POLYMORPHIC);
assert lookup.getType() == Type.POLYMORPHIC;
lookup.getReference().collectIndexedItems(indexedItems);
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFormat51l.java b/src/main/java/com/android/tools/r8/dex/code/DexFormat51l.java
index 438c4fb..fa88721 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFormat51l.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFormat51l.java
@@ -5,6 +5,7 @@
import com.android.tools.r8.dex.Constants;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
import com.android.tools.r8.graph.ProgramMethod;
@@ -64,9 +65,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
// No references.
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexIgetOrIput.java b/src/main/java/com/android/tools/r8/dex/code/DexIgetOrIput.java
index 2ab30bc..6d763e8 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexIgetOrIput.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexIgetOrIput.java
@@ -4,6 +4,7 @@
package com.android.tools.r8.dex.code;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexField;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
@@ -23,11 +24,11 @@
@Override
public final void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
- DexField rewritten = graphLens.lookupField(getField());
+ DexField rewritten = appView.graphLens().lookupField(getField());
rewritten.collectIndexedItems(indexedItems);
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexInitClass.java b/src/main/java/com/android/tools/r8/dex/code/DexInitClass.java
index 87463b3..4c7b12d 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexInitClass.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexInitClass.java
@@ -6,6 +6,7 @@
import com.android.tools.r8.dex.IndexedItemCollection;
import com.android.tools.r8.errors.Unreachable;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexField;
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.graph.GraphLens;
@@ -46,14 +47,14 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
// We intentionally apply the graph lens first, and then the init class lens, using the fact
// that the init class lens maps classes in the final program to fields in the final program.
- DexType rewrittenClass = graphLens.lookupType(clazz);
- DexField clinitField = indexedItems.getInitClassLens().getInitClassField(rewrittenClass);
+ DexType rewrittenClass = appView.graphLens().lookupType(clazz);
+ DexField clinitField = appView.initClassLens().getInitClassField(rewrittenClass);
clinitField.collectIndexedItems(indexedItems);
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexInstanceOf.java b/src/main/java/com/android/tools/r8/dex/code/DexInstanceOf.java
index d5eaa35..400a152 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexInstanceOf.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexInstanceOf.java
@@ -4,6 +4,7 @@
package com.android.tools.r8.dex.code;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
@@ -55,11 +56,11 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
- DexType rewritten = graphLens.lookupType(getType());
+ DexType rewritten = appView.graphLens().lookupType(getType());
rewritten.collectIndexedItems(indexedItems);
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexInstruction.java b/src/main/java/com/android/tools/r8/dex/code/DexInstruction.java
index eebd95a..cc35c46 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexInstruction.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexInstruction.java
@@ -7,6 +7,7 @@
import com.android.tools.r8.dex.IndexedItemCollection;
import com.android.tools.r8.errors.InternalCompilerError;
import com.android.tools.r8.errors.Unreachable;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexCallSite;
import com.android.tools.r8.graph.DexField;
import com.android.tools.r8.graph.DexMethod;
@@ -396,9 +397,9 @@
LensCodeRewriterUtils rewriter);
public abstract void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter);
public boolean equals(
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexInvokeCustom.java b/src/main/java/com/android/tools/r8/dex/code/DexInvokeCustom.java
index 4e73b38..739ddae 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexInvokeCustom.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexInvokeCustom.java
@@ -4,6 +4,7 @@
package com.android.tools.r8.dex.code;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexCallSite;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
@@ -45,9 +46,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
DexCallSite rewritten = rewriter.rewriteCallSite(getCallSite(), context);
rewritten.collectIndexedItems(indexedItems);
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexInvokeCustomRange.java b/src/main/java/com/android/tools/r8/dex/code/DexInvokeCustomRange.java
index bae7f30..ddd958b 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexInvokeCustomRange.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexInvokeCustomRange.java
@@ -4,6 +4,7 @@
package com.android.tools.r8.dex.code;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexCallSite;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
@@ -45,9 +46,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
DexCallSite rewritten = rewriter.rewriteCallSite(getCallSite(), context);
rewritten.collectIndexedItems(indexedItems);
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexInvokeMethod.java b/src/main/java/com/android/tools/r8/dex/code/DexInvokeMethod.java
index f5211b1..2bf97f2 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexInvokeMethod.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexInvokeMethod.java
@@ -4,6 +4,7 @@
package com.android.tools.r8.dex.code;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.GraphLens.MethodLookupResult;
@@ -25,12 +26,15 @@
@Override
public final void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
DexMethod rewritten =
- graphLens.lookupMethod(getMethod(), context.getReference(), getInvokeType()).getReference();
+ appView
+ .graphLens()
+ .lookupMethod(getMethod(), context.getReference(), getInvokeType())
+ .getReference();
rewritten.collectIndexedItems(indexedItems);
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexInvokeMethodRange.java b/src/main/java/com/android/tools/r8/dex/code/DexInvokeMethodRange.java
index db983f1..97032a0 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexInvokeMethodRange.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexInvokeMethodRange.java
@@ -4,6 +4,7 @@
package com.android.tools.r8.dex.code;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.GraphLens.MethodLookupResult;
@@ -25,12 +26,15 @@
@Override
public final void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
DexMethod rewritten =
- graphLens.lookupMethod(getMethod(), context.getReference(), getInvokeType()).getReference();
+ appView
+ .graphLens()
+ .lookupMethod(getMethod(), context.getReference(), getInvokeType())
+ .getReference();
rewritten.collectIndexedItems(indexedItems);
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexItemBasedConstString.java b/src/main/java/com/android/tools/r8/dex/code/DexItemBasedConstString.java
index a6930f3..26e5c62 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexItemBasedConstString.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexItemBasedConstString.java
@@ -5,6 +5,7 @@
import com.android.tools.r8.dex.IndexedItemCollection;
import com.android.tools.r8.errors.Unreachable;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexReference;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
@@ -40,9 +41,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
getItem().collectIndexedItems(indexedItems);
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexNewArray.java b/src/main/java/com/android/tools/r8/dex/code/DexNewArray.java
index 70fba01..11f3966 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexNewArray.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexNewArray.java
@@ -4,6 +4,7 @@
package com.android.tools.r8.dex.code;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
@@ -45,11 +46,11 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
- DexType rewritten = graphLens.lookupType(getType());
+ DexType rewritten = appView.graphLens().lookupType(getType());
rewritten.collectIndexedItems(indexedItems);
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexNewInstance.java b/src/main/java/com/android/tools/r8/dex/code/DexNewInstance.java
index 4867c22..ef1fd9a 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexNewInstance.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexNewInstance.java
@@ -4,6 +4,7 @@
package com.android.tools.r8.dex.code;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
@@ -51,11 +52,11 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
- DexType rewritten = graphLens.lookupType(getType());
+ DexType rewritten = appView.graphLens().lookupType(getType());
rewritten.collectIndexedItems(indexedItems);
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexNewUnboxedEnumInstance.java b/src/main/java/com/android/tools/r8/dex/code/DexNewUnboxedEnumInstance.java
index 235aaca..387952c 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexNewUnboxedEnumInstance.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexNewUnboxedEnumInstance.java
@@ -5,6 +5,7 @@
import com.android.tools.r8.dex.IndexedItemCollection;
import com.android.tools.r8.errors.Unreachable;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
@@ -51,9 +52,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
throw new Unreachable();
}
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexRecordFieldValues.java b/src/main/java/com/android/tools/r8/dex/code/DexRecordFieldValues.java
index 14e564b..83dad56 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexRecordFieldValues.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexRecordFieldValues.java
@@ -5,6 +5,7 @@
import com.android.tools.r8.dex.IndexedItemCollection;
import com.android.tools.r8.errors.Unreachable;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexField;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
@@ -37,9 +38,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
for (DexField field : fields) {
field.collectIndexedItems(indexedItems);
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexSgetOrSput.java b/src/main/java/com/android/tools/r8/dex/code/DexSgetOrSput.java
index 959659c..231984d 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexSgetOrSput.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexSgetOrSput.java
@@ -4,6 +4,7 @@
package com.android.tools.r8.dex.code;
import com.android.tools.r8.dex.IndexedItemCollection;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexField;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
@@ -24,11 +25,11 @@
@Override
public final void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
- DexField rewritten = graphLens.lookupField(getField());
+ DexField rewritten = appView.graphLens().lookupField(getField());
rewritten.collectIndexedItems(indexedItems);
}
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 112de40..57251a2 100644
--- a/src/main/java/com/android/tools/r8/graph/AppView.java
+++ b/src/main/java/com/android/tools/r8/graph/AppView.java
@@ -30,6 +30,7 @@
import com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoFactory;
import com.android.tools.r8.ir.optimize.library.LibraryMemberOptimizer;
import com.android.tools.r8.ir.optimize.library.LibraryMethodSideEffectModelCollection;
+import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.naming.SeedMapper;
import com.android.tools.r8.optimize.argumentpropagation.ArgumentPropagator;
import com.android.tools.r8.optimize.interfaces.collection.OpenClosedInterfacesCollection;
@@ -78,6 +79,7 @@
private GraphLens codeLens = GraphLens.getIdentityLens();
private GraphLens graphLens = GraphLens.getIdentityLens();
private InitClassLens initClassLens;
+ private NamingLens namingLens = NamingLens.getIdentityLens();
private ProguardCompatibilityActions proguardCompatibilityActions;
private RootSet rootSet;
private MainDexRootSet mainDexRootSet = null;
@@ -574,6 +576,14 @@
return getKeepInfo().getMethodInfo(method);
}
+ public NamingLens getNamingLens() {
+ return namingLens;
+ }
+
+ public void setNamingLens(NamingLens namingLens) {
+ this.namingLens = namingLens;
+ }
+
public boolean hasProguardCompatibilityActions() {
return proguardCompatibilityActions != null;
}
diff --git a/src/main/java/com/android/tools/r8/graph/DefaultInstanceInitializerCode.java b/src/main/java/com/android/tools/r8/graph/DefaultInstanceInitializerCode.java
index 906d92d..b001aa2 100644
--- a/src/main/java/com/android/tools/r8/graph/DefaultInstanceInitializerCode.java
+++ b/src/main/java/com/android/tools/r8/graph/DefaultInstanceInitializerCode.java
@@ -174,9 +174,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
getParentConstructor(context, rewriter.dexItemFactory()).collectIndexedItems(indexedItems);
}
diff --git a/src/main/java/com/android/tools/r8/graph/DexCode.java b/src/main/java/com/android/tools/r8/graph/DexCode.java
index 8dd617b..8e7b80e 100644
--- a/src/main/java/com/android/tools/r8/graph/DexCode.java
+++ b/src/main/java/com/android/tools/r8/graph/DexCode.java
@@ -589,14 +589,14 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
highestSortingString = null;
for (DexInstruction insn : instructions) {
assert !insn.isDexItemBasedConstString();
- insn.collectIndexedItems(indexedItems, context, graphLens, rewriter);
+ insn.collectIndexedItems(appView, indexedItems, context, rewriter);
if (insn.isConstString()) {
updateHighestSortingString(insn.asConstString().getString());
} else if (insn.isConstStringJumbo()) {
@@ -604,10 +604,10 @@
}
}
if (debugInfo != null) {
- getDebugInfoForWriting().collectIndexedItems(indexedItems, graphLens);
+ getDebugInfoForWriting().collectIndexedItems(indexedItems, appView.graphLens());
}
for (TryHandler handler : handlers) {
- handler.collectIndexedItems(indexedItems, graphLens);
+ handler.collectIndexedItems(indexedItems, appView.graphLens());
}
}
diff --git a/src/main/java/com/android/tools/r8/graph/DexProgramClass.java b/src/main/java/com/android/tools/r8/graph/DexProgramClass.java
index 5e30d52..2f5f6da 100644
--- a/src/main/java/com/android/tools/r8/graph/DexProgramClass.java
+++ b/src/main/java/com/android/tools/r8/graph/DexProgramClass.java
@@ -401,7 +401,7 @@
}
public void collectIndexedItems(
- IndexedItemCollection indexedItems, GraphLens graphLens, LensCodeRewriterUtils rewriter) {
+ AppView<?> appView, IndexedItemCollection indexedItems, LensCodeRewriterUtils rewriter) {
if (indexedItems.addClass(this)) {
type.collectIndexedItems(indexedItems);
if (superType != null) {
@@ -424,7 +424,7 @@
}
// We are explicitly not adding items referenced in signatures.
forEachProgramField(field -> field.collectIndexedItems(indexedItems));
- forEachProgramMethod(method -> method.collectIndexedItems(indexedItems, graphLens, rewriter));
+ forEachProgramMethod(method -> method.collectIndexedItems(appView, indexedItems, rewriter));
}
}
diff --git a/src/main/java/com/android/tools/r8/graph/DexWritableCode.java b/src/main/java/com/android/tools/r8/graph/DexWritableCode.java
index ef6bd3b..1458f08 100644
--- a/src/main/java/com/android/tools/r8/graph/DexWritableCode.java
+++ b/src/main/java/com/android/tools/r8/graph/DexWritableCode.java
@@ -54,9 +54,9 @@
int codeSizeInBytes();
void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter);
void collectMixedSectionItems(MixedSectionCollection mixedItems);
diff --git a/src/main/java/com/android/tools/r8/graph/ObjectToOffsetMapping.java b/src/main/java/com/android/tools/r8/graph/ObjectToOffsetMapping.java
index e915bb6..6173bef 100644
--- a/src/main/java/com/android/tools/r8/graph/ObjectToOffsetMapping.java
+++ b/src/main/java/com/android/tools/r8/graph/ObjectToOffsetMapping.java
@@ -53,7 +53,6 @@
public ObjectToOffsetMapping(
AppView<?> appView,
- NamingLens namingLens,
LensCodeRewriterUtils lensCodeRewriter,
Collection<DexProgramClass> classes,
Collection<DexProto> protos,
@@ -77,7 +76,7 @@
this.lazyDexStringsCount = lazyDexStringsCount;
this.appView = appView;
this.graphLens = appView.graphLens();
- this.namingLens = namingLens;
+ this.namingLens = appView.getNamingLens();
this.initClassLens = appView.initClassLens();
this.lensCodeRewriter = lensCodeRewriter;
timing.begin("Sort strings");
diff --git a/src/main/java/com/android/tools/r8/graph/ProgramMethod.java b/src/main/java/com/android/tools/r8/graph/ProgramMethod.java
index 37d165b..9be5f56 100644
--- a/src/main/java/com/android/tools/r8/graph/ProgramMethod.java
+++ b/src/main/java/com/android/tools/r8/graph/ProgramMethod.java
@@ -65,13 +65,13 @@
}
public void collectIndexedItems(
- IndexedItemCollection indexedItems, GraphLens graphLens, LensCodeRewriterUtils rewriter) {
+ AppView<?> appView, IndexedItemCollection indexedItems, LensCodeRewriterUtils rewriter) {
DexEncodedMethod definition = getDefinition();
assert !definition.isObsolete();
getReference().collectIndexedItems(indexedItems);
if (definition.hasCode()) {
Code code = definition.getCode();
- code.asDexWritableCode().collectIndexedItems(indexedItems, this, graphLens, rewriter);
+ code.asDexWritableCode().collectIndexedItems(appView, indexedItems, this, rewriter);
}
definition.annotations().collectIndexedItems(indexedItems);
definition.parameterAnnotationsList.collectIndexedItems(indexedItems);
diff --git a/src/main/java/com/android/tools/r8/graph/ThrowExceptionCode.java b/src/main/java/com/android/tools/r8/graph/ThrowExceptionCode.java
index d2a55cb..04290a0 100644
--- a/src/main/java/com/android/tools/r8/graph/ThrowExceptionCode.java
+++ b/src/main/java/com/android/tools/r8/graph/ThrowExceptionCode.java
@@ -77,9 +77,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
rewriter
.dexItemFactory()
diff --git a/src/main/java/com/android/tools/r8/graph/ThrowNullCode.java b/src/main/java/com/android/tools/r8/graph/ThrowNullCode.java
index b2418cb..cac6f7a 100644
--- a/src/main/java/com/android/tools/r8/graph/ThrowNullCode.java
+++ b/src/main/java/com/android/tools/r8/graph/ThrowNullCode.java
@@ -86,9 +86,9 @@
@Override
public void collectIndexedItems(
+ AppView<?> appView,
IndexedItemCollection indexedItems,
ProgramMethod context,
- GraphLens graphLens,
LensCodeRewriterUtils rewriter) {
// Intentionally empty.
}
diff --git a/src/main/java/com/android/tools/r8/jar/CfApplicationWriter.java b/src/main/java/com/android/tools/r8/jar/CfApplicationWriter.java
index 3ac9bc61..418a665 100644
--- a/src/main/java/com/android/tools/r8/jar/CfApplicationWriter.java
+++ b/src/main/java/com/android/tools/r8/jar/CfApplicationWriter.java
@@ -88,17 +88,15 @@
private final DexApplication application;
private final AppView<?> appView;
- private final NamingLens namingLens;
private final InternalOptions options;
private final Marker marker;
private final Predicate<DexType> isTypeMissing;
private static final CfVersion MIN_VERSION_FOR_COMPILER_GENERATED_CODE = CfVersion.V1_6;
- public CfApplicationWriter(AppView<?> appView, Marker marker, NamingLens namingLens) {
+ public CfApplicationWriter(AppView<?> appView, Marker marker) {
this.application = appView.appInfo().app();
this.appView = appView;
- this.namingLens = namingLens;
this.options = appView.options();
assert marker != null;
this.marker = marker;
@@ -106,6 +104,10 @@
PredicateUtils.isNull(appView.appInfo()::definitionForWithoutExistenceAssert);
}
+ private NamingLens getNamingLens() {
+ return appView.getNamingLens();
+ }
+
public void write(ClassFileConsumer consumer) {
assert options.proguardMapConsumer == null;
write(consumer, null);
@@ -138,7 +140,6 @@
runAndWriteMap(
inputApp,
appView,
- namingLens,
application.timing,
OriginalSourceFiles.fromClasses(),
DebugRepresentation.none(options));
@@ -174,9 +175,9 @@
writeClassCatchingErrors(
clazz, globalsConsumer, rewriter, markerString, sourceFileEnvironment);
}
- globalsConsumer.finished(appView, namingLens);
+ globalsConsumer.finished(appView);
}
- ApplicationWriter.supplyAdditionalConsumers(application, appView, namingLens, options);
+ ApplicationWriter.supplyAdditionalConsumers(appView);
}
private void writeClassCatchingErrors(
@@ -248,16 +249,16 @@
if (clazz.isDeprecated()) {
access = AsmUtils.withDeprecated(access);
}
- String desc = namingLens.lookupDescriptor(clazz.type).toString();
- String name = namingLens.lookupInternalName(clazz.type);
- String signature = clazz.getClassSignature().toRenamedString(namingLens, isTypeMissing);
+ String desc = getNamingLens().lookupDescriptor(clazz.type).toString();
+ String name = getNamingLens().lookupInternalName(clazz.type);
+ String signature = clazz.getClassSignature().toRenamedString(getNamingLens(), isTypeMissing);
String superName =
clazz.type == options.itemFactory.objectType
? null
- : namingLens.lookupInternalName(clazz.superType);
+ : getNamingLens().lookupInternalName(clazz.superType);
String[] interfaces = new String[clazz.interfaces.values.length];
for (int i = 0; i < clazz.interfaces.values.length; i++) {
- interfaces[i] = namingLens.lookupInternalName(clazz.interfaces.values[i]);
+ interfaces[i] = getNamingLens().lookupInternalName(clazz.interfaces.values[i]);
}
assert SyntheticNaming.verifyNotInternalSynthetic(name);
writer.visit(version.raw(), access, name, signature, superName, interfaces);
@@ -266,15 +267,15 @@
ImmutableMap<DexString, DexValue> defaults = getAnnotationDefaults(clazz.annotations());
if (clazz.getEnclosingMethodAttribute() != null) {
- clazz.getEnclosingMethodAttribute().write(writer, namingLens);
+ clazz.getEnclosingMethodAttribute().write(writer, getNamingLens());
}
if (clazz.getNestHostClassAttribute() != null) {
- clazz.getNestHostClassAttribute().write(writer, namingLens);
+ clazz.getNestHostClassAttribute().write(writer, getNamingLens());
}
for (NestMemberClassAttribute entry : clazz.getNestMembersClassAttributes()) {
- entry.write(writer, namingLens);
+ entry.write(writer, getNamingLens());
assert clazz.getNestHostClassAttribute() == null
: "A nest host cannot also be a nest member.";
}
@@ -282,17 +283,17 @@
if (clazz.isRecord()) {
// TODO(b/169645628): Strip record components if not kept.
for (DexEncodedField instanceField : clazz.instanceFields()) {
- String componentName = namingLens.lookupName(instanceField.getReference()).toString();
+ String componentName = getNamingLens().lookupName(instanceField.getReference()).toString();
String componentDescriptor =
- namingLens.lookupDescriptor(instanceField.getReference().type).toString();
+ getNamingLens().lookupDescriptor(instanceField.getReference().type).toString();
String componentSignature =
- instanceField.getGenericSignature().toRenamedString(namingLens, isTypeMissing);
+ instanceField.getGenericSignature().toRenamedString(getNamingLens(), isTypeMissing);
writer.visitRecordComponent(componentName, componentDescriptor, componentSignature);
}
}
for (InnerClassAttribute entry : clazz.getInnerClasses()) {
- entry.write(writer, namingLens, options);
+ entry.write(writer, getNamingLens(), options);
}
for (DexEncodedField field : clazz.staticFields()) {
@@ -328,11 +329,11 @@
}
private int compareTypesThroughLens(DexType a, DexType b) {
- return namingLens.lookupDescriptor(a).compareTo(namingLens.lookupDescriptor(b));
+ return getNamingLens().lookupDescriptor(a).compareTo(getNamingLens().lookupDescriptor(b));
}
private DexString returnTypeThroughLens(DexMethod method) {
- return namingLens.lookupDescriptor(method.getReturnType());
+ return getNamingLens().lookupDescriptor(method.getReturnType());
}
private int compareMethodsThroughLens(ProgramMethod a, ProgramMethod b) {
@@ -422,7 +423,7 @@
DexValue[] values = value.asDexValueArray().getValues();
String[] res = new String[values.length];
for (int i = 0; i < values.length; i++) {
- res[i] = namingLens.lookupInternalName(values[i].asDexValueType().value);
+ res[i] = getNamingLens().lookupInternalName(values[i].asDexValueType().value);
}
return res;
}
@@ -439,9 +440,9 @@
if (field.isDeprecated()) {
access = AsmUtils.withDeprecated(access);
}
- String name = namingLens.lookupName(field.getReference()).toString();
- String desc = namingLens.lookupDescriptor(field.getReference().type).toString();
- String signature = field.getGenericSignature().toRenamedString(namingLens, isTypeMissing);
+ String name = getNamingLens().lookupName(field.getReference()).toString();
+ String desc = getNamingLens().lookupDescriptor(field.getReference().type).toString();
+ String signature = field.getGenericSignature().toRenamedString(getNamingLens(), isTypeMissing);
Object value = getStaticValue(field);
FieldVisitor visitor = writer.visitField(access, name, desc, signature, value);
writeAnnotations(visitor::visitAnnotation, field.annotations().annotations);
@@ -454,13 +455,11 @@
LensCodeRewriterUtils rewriter,
ClassWriter writer,
ImmutableMap<DexString, DexValue> defaults) {
- NamingLens namingLens = this.namingLens;
-
// For "pass through" classes which has already been library desugared use the identity lens.
- if (appView.isAlreadyLibraryDesugared(method.getHolder())) {
- namingLens = NamingLens.getIdentityLens();
- }
-
+ NamingLens namingLens =
+ appView.isAlreadyLibraryDesugared(method.getHolder())
+ ? NamingLens.getIdentityLens()
+ : getNamingLens();
DexEncodedMethod definition = method.getDefinition();
int access = definition.getAccessFlags().getAsCfAccessFlags();
if (definition.isDeprecated()) {
@@ -540,7 +539,7 @@
}
AnnotationVisitor v =
visitor.visit(
- namingLens.lookupDescriptor(dexAnnotation.annotation.type).toString(),
+ getNamingLens().lookupDescriptor(dexAnnotation.annotation.type).toString(),
dexAnnotation.visibility == DexAnnotation.VISIBILITY_RUNTIME);
if (v != null) {
writeAnnotation(v, dexAnnotation.annotation);
@@ -562,7 +561,7 @@
DexValueAnnotation valueAnnotation = value.asDexValueAnnotation();
AnnotationVisitor innerVisitor =
visitor.visitAnnotation(
- name, namingLens.lookupDescriptor(valueAnnotation.value.type).toString());
+ name, getNamingLens().lookupDescriptor(valueAnnotation.value.type).toString());
if (innerVisitor != null) {
writeAnnotation(innerVisitor, valueAnnotation.value);
innerVisitor.visitEnd();
@@ -587,8 +586,8 @@
DexField enumField = value.asDexValueEnum().getValue();
visitor.visitEnum(
name,
- namingLens.lookupDescriptor(enumField.getType()).toString(),
- namingLens.lookupName(enumField).toString());
+ getNamingLens().lookupDescriptor(enumField.getType()).toString(),
+ getNamingLens().lookupName(enumField).toString());
break;
case FIELD:
@@ -610,7 +609,8 @@
case TYPE:
visitor.visit(
name,
- Type.getType(namingLens.lookupDescriptor(value.asDexValueType().value).toString()));
+ Type.getType(
+ getNamingLens().lookupDescriptor(value.asDexValueType().value).toString()));
break;
default:
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinAnnotationArgumentInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinAnnotationArgumentInfo.java
index 6f34ad1..7d9fd7f 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinAnnotationArgumentInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinAnnotationArgumentInfo.java
@@ -8,7 +8,6 @@
import com.android.tools.r8.graph.DexDefinitionSupplier;
import com.android.tools.r8.graph.DexItemFactory;
import com.android.tools.r8.kotlin.Kotlin.ClassClassifiers;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.shaking.EnqueuerMetadataTraceable;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
@@ -28,8 +27,7 @@
private static final Map<String, KotlinAnnotationArgumentInfo> EMPTY_ARGUMENTS =
ImmutableMap.of();
- abstract boolean rewrite(
- Consumer<KmAnnotationArgument> consumer, AppView<?> appView, NamingLens namingLens);
+ abstract boolean rewrite(Consumer<KmAnnotationArgument> consumer, AppView<?> appView);
private static KotlinAnnotationArgumentInfo createArgument(
KmAnnotationArgument arg, DexItemFactory factory) {
@@ -78,12 +76,10 @@
}
@Override
- boolean rewrite(
- Consumer<KmAnnotationArgument> consumer, AppView<?> appView, NamingLens namingLens) {
+ boolean rewrite(Consumer<KmAnnotationArgument> consumer, AppView<?> appView) {
return value.toRenamedBinaryNameOrDefault(
rewrittenValue -> consumer.accept(new KClassValue(rewrittenValue, arrayDimensionCount)),
appView,
- namingLens,
ClassClassifiers.anyName);
}
}
@@ -111,13 +107,11 @@
}
@Override
- boolean rewrite(
- Consumer<KmAnnotationArgument> consumer, AppView<?> appView, NamingLens namingLens) {
+ boolean rewrite(Consumer<KmAnnotationArgument> consumer, AppView<?> appView) {
return enumClassName.toRenamedBinaryNameOrDefault(
rewrittenEnumClassName ->
consumer.accept(new EnumValue(rewrittenEnumClassName, enumEntryName)),
appView,
- namingLens,
ClassClassifiers.anyName);
}
}
@@ -142,16 +136,14 @@
}
@Override
- boolean rewrite(
- Consumer<KmAnnotationArgument> consumer, AppView<?> appView, NamingLens namingLens) {
+ boolean rewrite(Consumer<KmAnnotationArgument> consumer, AppView<?> appView) {
return value.rewrite(
rewrittenAnnotation -> {
if (rewrittenAnnotation != null) {
consumer.accept(new AnnotationValue(rewrittenAnnotation));
}
},
- appView,
- namingLens);
+ appView);
}
}
@@ -185,8 +177,7 @@
}
@Override
- boolean rewrite(
- Consumer<KmAnnotationArgument> consumer, AppView<?> appView, NamingLens namingLens) {
+ boolean rewrite(Consumer<KmAnnotationArgument> consumer, AppView<?> appView) {
List<KmAnnotationArgument> rewrittenArguments = new ArrayList<>();
boolean rewritten = false;
for (KotlinAnnotationArgumentInfo kotlinAnnotationArgumentInfo : value) {
@@ -197,8 +188,7 @@
rewrittenArguments.add(rewrittenArg);
}
},
- appView,
- namingLens);
+ appView);
}
consumer.accept(new ArrayValue(rewrittenArguments));
return rewritten;
@@ -223,8 +213,7 @@
}
@Override
- boolean rewrite(
- Consumer<KmAnnotationArgument> consumer, AppView<?> appView, NamingLens namingLens) {
+ boolean rewrite(Consumer<KmAnnotationArgument> consumer, AppView<?> appView) {
consumer.accept(argument);
return false;
}
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinAnnotationInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinAnnotationInfo.java
index d21cfb1..249f68f 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinAnnotationInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinAnnotationInfo.java
@@ -7,7 +7,6 @@
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexDefinitionSupplier;
import com.android.tools.r8.graph.DexItemFactory;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.shaking.EnqueuerMetadataTraceable;
import com.android.tools.r8.utils.BooleanBox;
import com.android.tools.r8.utils.DescriptorUtils;
@@ -51,9 +50,7 @@
}
boolean rewrite(
- KmVisitorProviders.KmAnnotationVisitorProvider visitorProvider,
- AppView<?> appView,
- NamingLens namingLens) {
+ KmVisitorProviders.KmAnnotationVisitorProvider visitorProvider, AppView<?> appView) {
BooleanBox rewritten = new BooleanBox(false);
rewritten.or(
annotationType.toRenamedDescriptorOrDefault(
@@ -74,12 +71,10 @@
rewrittenArguments.put(key, rewrittenArg);
}
},
- appView,
- namingLens)));
+ appView)));
visitorProvider.get(new KmAnnotation(classifier, rewrittenArguments));
},
appView,
- namingLens,
null));
return rewritten.get();
}
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinClassInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinClassInfo.java
index bd8696b..9ddddfe 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinClassInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinClassInfo.java
@@ -15,7 +15,6 @@
import com.android.tools.r8.graph.DexEncodedMethod;
import com.android.tools.r8.graph.DexItemFactory;
import com.android.tools.r8.graph.DexString;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.utils.Box;
import com.android.tools.r8.utils.DescriptorUtils;
import com.android.tools.r8.utils.Pair;
@@ -255,14 +254,13 @@
}
@Override
- public Pair<KotlinClassHeader, Boolean> rewrite(
- DexClass clazz, AppView<?> appView, NamingLens namingLens) {
+ public Pair<KotlinClassHeader, Boolean> rewrite(DexClass clazz, AppView<?> appView) {
KmClass kmClass = new KmClass();
// TODO(b/154348683): Set flags.
kmClass.setFlags(flags);
// Set potentially renamed class name.
DexString originalDescriptor = clazz.type.descriptor;
- DexString rewrittenDescriptor = namingLens.lookupDescriptor(clazz.type);
+ DexString rewrittenDescriptor = appView.getNamingLens().lookupDescriptor(clazz.type);
boolean rewritten = !originalDescriptor.equals(rewrittenDescriptor);
if (!nameCanBeSynthesizedFromClassOrAnonymousObjectOrigin) {
kmClass.setName(this.name);
@@ -273,8 +271,7 @@
if (anonymousObjectOrigin != null
&& name.equals(anonymousObjectOrigin.toKotlinClassifier(true))) {
Box<String> rewrittenOrigin = new Box<>();
- anonymousObjectOrigin.toRenamedBinaryNameOrDefault(
- rewrittenOrigin::set, appView, namingLens, null);
+ anonymousObjectOrigin.toRenamedBinaryNameOrDefault(rewrittenOrigin::set, appView, null);
if (rewrittenOrigin.isSet()) {
rewrittenName = "." + rewrittenOrigin.get();
}
@@ -290,19 +287,22 @@
for (DexEncodedField field : clazz.fields()) {
if (field.getKotlinInfo().isCompanion()) {
rewritten |=
- field.getKotlinInfo().asCompanion().rewrite(kmClass, field.getReference(), namingLens);
+ field
+ .getKotlinInfo()
+ .asCompanion()
+ .rewrite(kmClass, field.getReference(), appView.getNamingLens());
}
}
// Take all not backed constructors because we will never find them in definitions.
for (KotlinConstructorInfo constructorInfo : constructorsWithNoBacking) {
- rewritten |= constructorInfo.rewrite(kmClass, null, appView, namingLens);
+ rewritten |= constructorInfo.rewrite(kmClass, null, appView);
}
// Find all constructors.
KotlinMetadataMembersTracker rewrittenReferences = new KotlinMetadataMembersTracker(appView);
for (DexEncodedMethod method : clazz.methods()) {
if (method.getKotlinInfo().isConstructor()) {
KotlinConstructorInfo constructorInfo = method.getKotlinInfo().asConstructor();
- rewritten |= constructorInfo.rewrite(kmClass, method, appView, namingLens);
+ rewritten |= constructorInfo.rewrite(kmClass, method, appView);
rewrittenReferences.add(method.getReference());
}
}
@@ -314,17 +314,16 @@
kmClass::visitTypeAlias,
clazz,
appView,
- namingLens,
rewrittenReferences);
// Rewrite type parameters.
for (KotlinTypeParameterInfo typeParameter : typeParameters) {
- rewritten |= typeParameter.rewrite(kmClass::visitTypeParameter, appView, namingLens);
+ rewritten |= typeParameter.rewrite(kmClass::visitTypeParameter, appView);
}
// Rewrite super types.
for (KotlinTypeInfo superType : superTypes) {
// Ensure the rewritten super type is not this type.
if (clazz.getType() != superType.rewriteType(appView.graphLens())) {
- rewritten |= superType.rewrite(kmClass::visitSupertype, appView, namingLens);
+ rewritten |= superType.rewrite(kmClass::visitSupertype, appView);
} else {
rewritten = true;
}
@@ -333,8 +332,7 @@
for (KotlinTypeReference nestedClass : nestedClasses) {
Box<String> nestedDescriptorBox = new Box<>();
boolean nestedClassRewritten =
- nestedClass.toRenamedBinaryNameOrDefault(
- nestedDescriptorBox::set, appView, namingLens, null);
+ nestedClass.toRenamedBinaryNameOrDefault(nestedDescriptorBox::set, appView, null);
if (nestedDescriptorBox.isSet()) {
if (nestedClassRewritten) {
// If the class is a nested class, it should be on the form Foo.Bar$Baz, where Baz
@@ -361,7 +359,6 @@
}
},
appView,
- namingLens,
null);
}
// TODO(b/154347404): Understand enum entries.
@@ -370,8 +367,7 @@
if (inlineClassUnderlyingPropertyName != null && inlineClassUnderlyingType != null) {
kmClass.setInlineClassUnderlyingPropertyName(inlineClassUnderlyingPropertyName);
rewritten |=
- inlineClassUnderlyingType.rewrite(
- kmClass::visitInlineClassUnderlyingType, appView, namingLens);
+ inlineClassUnderlyingType.rewrite(kmClass::visitInlineClassUnderlyingType, appView);
}
JvmClassExtensionVisitor extensionVisitor =
(JvmClassExtensionVisitor) kmClass.visitExtensions(JvmClassExtensionVisitor.TYPE);
@@ -386,12 +382,10 @@
}
},
appView,
- namingLens,
null);
}
rewritten |=
- localDelegatedProperties.rewrite(
- extensionVisitor::visitLocalDelegatedProperty, appView, namingLens);
+ localDelegatedProperties.rewrite(extensionVisitor::visitLocalDelegatedProperty, appView);
extensionVisitor.visitEnd();
KotlinClassMetadata.Class.Writer writer = new KotlinClassMetadata.Class.Writer();
kmClass.accept(writer);
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinClassLevelInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinClassLevelInfo.java
index 34c60de..e8f7fd0 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinClassLevelInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinClassLevelInfo.java
@@ -6,7 +6,6 @@
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexClass;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.shaking.EnqueuerMetadataTraceable;
import com.android.tools.r8.utils.Pair;
import kotlinx.metadata.jvm.KotlinClassHeader;
@@ -57,8 +56,7 @@
return null;
}
- Pair<KotlinClassHeader, Boolean> rewrite(
- DexClass clazz, AppView<?> appView, NamingLens namingLens);
+ Pair<KotlinClassHeader, Boolean> rewrite(DexClass clazz, AppView<?> appView);
String getPackageName();
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinClassifierInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinClassifierInfo.java
index 9b2939e..b6ee8e3 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinClassifierInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinClassifierInfo.java
@@ -12,7 +12,6 @@
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.kotlin.Kotlin.ClassClassifiers;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.shaking.EnqueuerMetadataTraceable;
import com.android.tools.r8.utils.DescriptorUtils;
import com.android.tools.r8.utils.Reporter;
@@ -50,7 +49,7 @@
}
}
- abstract boolean rewrite(KmTypeVisitor visitor, AppView<?> appView, NamingLens namingLens);
+ abstract boolean rewrite(KmTypeVisitor visitor, AppView<?> appView);
public DexType rewriteType(GraphLens graphLens) {
return null;
@@ -67,14 +66,12 @@
}
@Override
- boolean rewrite(KmTypeVisitor visitor, AppView<?> appView, NamingLens namingLens) {
+ boolean rewrite(KmTypeVisitor visitor, AppView<?> appView) {
return type.toRenamedDescriptorOrDefault(
- descriptor -> {
- visitor.visitClass(
- getKotlinLocalOrAnonymousNameFromDescriptor(descriptor, isLocalOrAnonymous));
- },
+ descriptor ->
+ visitor.visitClass(
+ getKotlinLocalOrAnonymousNameFromDescriptor(descriptor, isLocalOrAnonymous)),
appView,
- namingLens,
ClassClassifiers.anyDescriptor);
}
@@ -98,7 +95,7 @@
}
@Override
- boolean rewrite(KmTypeVisitor visitor, AppView<?> appView, NamingLens namingLens) {
+ boolean rewrite(KmTypeVisitor visitor, AppView<?> appView) {
visitor.visitTypeParameter(typeId);
return false;
}
@@ -118,7 +115,7 @@
}
@Override
- boolean rewrite(KmTypeVisitor visitor, AppView<?> appView, NamingLens namingLens) {
+ boolean rewrite(KmTypeVisitor visitor, AppView<?> appView) {
visitor.visitTypeAlias(typeAlias);
return false;
}
@@ -137,7 +134,7 @@
}
@Override
- boolean rewrite(KmTypeVisitor visitor, AppView<?> appView, NamingLens namingLens) {
+ boolean rewrite(KmTypeVisitor visitor, AppView<?> appView) {
visitor.visitClass(classifier);
return false;
}
@@ -156,7 +153,7 @@
}
@Override
- boolean rewrite(KmTypeVisitor visitor, AppView<?> appView, NamingLens namingLens) {
+ boolean rewrite(KmTypeVisitor visitor, AppView<?> appView) {
visitor.visitTypeAlias(classifier);
return false;
}
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinConstructorInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinConstructorInfo.java
index dd82d58..4c93733 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinConstructorInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinConstructorInfo.java
@@ -10,7 +10,6 @@
import com.android.tools.r8.graph.DexDefinitionSupplier;
import com.android.tools.r8.graph.DexEncodedMethod;
import com.android.tools.r8.graph.DexItemFactory;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.utils.Reporter;
import java.util.List;
import kotlinx.metadata.KmClass;
@@ -55,8 +54,7 @@
: null);
}
- boolean rewrite(
- KmClass kmClass, DexEncodedMethod method, AppView<?> appView, NamingLens namingLens) {
+ boolean rewrite(KmClass kmClass, DexEncodedMethod method, AppView<?> appView) {
// Note that JvmExtensionsKt.setSignature does not have an overload for KmConstructorVisitor,
// thus we rely on creating the KmConstructor manually.
// TODO(b/154348683): Check for special flags to pass in.
@@ -67,12 +65,10 @@
signature.rewrite(
rewrittenSignature -> JvmExtensionsKt.setSignature(kmConstructor, rewrittenSignature),
method,
- appView,
- namingLens);
+ appView);
}
for (KotlinValueParameterInfo valueParameterInfo : valueParameters) {
- rewritten |=
- valueParameterInfo.rewrite(kmConstructor::visitValueParameter, appView, namingLens);
+ rewritten |= valueParameterInfo.rewrite(kmConstructor::visitValueParameter, appView);
}
rewritten |= versionRequirements.rewrite(kmConstructor::visitVersionRequirement);
kmClass.getConstructors().add(kmConstructor);
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinContractInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinContractInfo.java
index 2afb66e..c437bba 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinContractInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinContractInfo.java
@@ -9,7 +9,6 @@
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexDefinitionSupplier;
import com.android.tools.r8.graph.DexItemFactory;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.shaking.EnqueuerMetadataTraceable;
import com.android.tools.r8.utils.Reporter;
import com.google.common.collect.ImmutableList;
@@ -50,16 +49,14 @@
}
boolean rewrite(
- KmVisitorProviders.KmContractVisitorProvider visitorProvider,
- AppView<?> appView,
- NamingLens namingLens) {
+ KmVisitorProviders.KmContractVisitorProvider visitorProvider, AppView<?> appView) {
if (this == NO_EFFECT) {
return false;
}
boolean rewritten = false;
KmContractVisitor kmContractVisitor = visitorProvider.get();
for (KotlinEffectInfo effect : effects) {
- rewritten |= effect.rewrite(kmContractVisitor::visitEffect, appView, namingLens);
+ rewritten |= effect.rewrite(kmContractVisitor::visitEffect, appView);
}
kmContractVisitor.visitEnd();
return rewritten;
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinDeclarationContainerInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinDeclarationContainerInfo.java
index 5022d48..9307053 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinDeclarationContainerInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinDeclarationContainerInfo.java
@@ -15,7 +15,6 @@
import com.android.tools.r8.graph.DexEncodedMethod;
import com.android.tools.r8.graph.DexItemFactory;
import com.android.tools.r8.kotlin.KotlinMetadataUtils.KmPropertyProcessor;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.shaking.EnqueuerMetadataTraceable;
import com.android.tools.r8.utils.Reporter;
import com.google.common.collect.ImmutableList;
@@ -185,12 +184,11 @@
KmVisitorProviders.KmTypeAliasVisitorProvider typeAliasProvider,
DexClass clazz,
AppView<?> appView,
- NamingLens namingLens,
KotlinMetadataMembersTracker rewrittenMembersWithKotlinInfo) {
// Type aliases only have a representation here, so we can generate them directly.
boolean rewritten = false;
for (KotlinTypeAliasInfo typeAlias : typeAliases) {
- rewritten |= typeAlias.rewrite(typeAliasProvider, appView, namingLens);
+ rewritten |= typeAlias.rewrite(typeAliasProvider, appView);
}
// For properties, we need to combine potentially a field, setter and getter.
Map<KotlinPropertyInfo, KotlinPropertyGroup> properties = new LinkedHashMap<>();
@@ -205,11 +203,7 @@
}
for (DexEncodedMethod method : clazz.methods()) {
if (method.getKotlinInfo().isFunction()) {
- rewritten |=
- method
- .getKotlinInfo()
- .asFunction()
- .rewrite(functionProvider, method, appView, namingLens);
+ rewritten |= method.getKotlinInfo().asFunction().rewrite(functionProvider, method, appView);
rewrittenMembersWithKotlinInfo.add(method.getReference());
continue;
}
@@ -235,16 +229,14 @@
kotlinPropertyGroup.backingField,
kotlinPropertyGroup.getter,
kotlinPropertyGroup.setter,
- appView,
- namingLens);
+ appView);
}
// Add all not backed functions and properties.
for (KotlinFunctionInfo notBackedFunction : functionsWithNoBacking) {
- rewritten |= notBackedFunction.rewrite(functionProvider, null, appView, namingLens);
+ rewritten |= notBackedFunction.rewrite(functionProvider, null, appView);
}
for (KotlinPropertyInfo notBackedProperty : propertiesWithNoBacking) {
- rewritten |=
- notBackedProperty.rewrite(propertyProvider, null, null, null, appView, namingLens);
+ rewritten |= notBackedProperty.rewrite(propertyProvider, null, null, null, appView);
}
return rewritten;
}
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinEffectExpressionInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinEffectExpressionInfo.java
index bc7cda0..18afe26 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinEffectExpressionInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinEffectExpressionInfo.java
@@ -10,7 +10,6 @@
import com.android.tools.r8.graph.DexDefinitionSupplier;
import com.android.tools.r8.graph.DexItemFactory;
import com.android.tools.r8.kotlin.KmVisitorProviders.KmEffectExpressionVisitorProvider;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.shaking.EnqueuerMetadataTraceable;
import com.android.tools.r8.utils.Reporter;
import com.google.common.collect.ImmutableList;
@@ -85,8 +84,7 @@
forEachApply(orArguments, arg -> arg::trace, definitionSupplier);
}
- boolean rewrite(
- KmEffectExpressionVisitorProvider provider, AppView<?> appView, NamingLens namingLens) {
+ boolean rewrite(KmEffectExpressionVisitorProvider provider, AppView<?> appView) {
if (this == NO_EXPRESSION) {
return false;
}
@@ -97,13 +95,13 @@
}
boolean rewritten = false;
if (isInstanceType != null) {
- rewritten |= isInstanceType.rewrite(visitor::visitIsInstanceType, appView, namingLens);
+ rewritten |= isInstanceType.rewrite(visitor::visitIsInstanceType, appView);
}
for (KotlinEffectExpressionInfo andArgument : andArguments) {
- rewritten |= andArgument.rewrite(visitor::visitAndArgument, appView, namingLens);
+ rewritten |= andArgument.rewrite(visitor::visitAndArgument, appView);
}
for (KotlinEffectExpressionInfo orArgument : orArguments) {
- rewritten |= orArgument.rewrite(visitor::visitAndArgument, appView, namingLens);
+ rewritten |= orArgument.rewrite(visitor::visitAndArgument, appView);
}
visitor.visitEnd();
return rewritten;
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinEffectInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinEffectInfo.java
index e581526..e93b126 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinEffectInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinEffectInfo.java
@@ -10,7 +10,6 @@
import com.android.tools.r8.graph.DexDefinitionSupplier;
import com.android.tools.r8.graph.DexItemFactory;
import com.android.tools.r8.kotlin.KmVisitorProviders.KmEffectVisitorProvider;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.shaking.EnqueuerMetadataTraceable;
import com.android.tools.r8.utils.Reporter;
import java.util.List;
@@ -51,16 +50,12 @@
conclusion.trace(definitionSupplier);
}
- boolean rewrite(
- KmEffectVisitorProvider visitorProvider, AppView<?> appView, NamingLens namingLens) {
+ boolean rewrite(KmEffectVisitorProvider visitorProvider, AppView<?> appView) {
KmEffectVisitor kmEffectVisitor = visitorProvider.get(type, invocationKind);
boolean rewritten =
- conclusion.rewrite(
- kmEffectVisitor::visitConclusionOfConditionalEffect, appView, namingLens);
+ conclusion.rewrite(kmEffectVisitor::visitConclusionOfConditionalEffect, appView);
for (KotlinEffectExpressionInfo constructorArgument : constructorArguments) {
- rewritten |=
- constructorArgument.rewrite(
- kmEffectVisitor::visitConstructorArgument, appView, namingLens);
+ rewritten |= constructorArgument.rewrite(kmEffectVisitor::visitConstructorArgument, appView);
}
kmEffectVisitor.visitEnd();
return rewritten;
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinFileFacadeInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinFileFacadeInfo.java
index 7981195..f112b4f 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinFileFacadeInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinFileFacadeInfo.java
@@ -8,7 +8,6 @@
import com.android.tools.r8.graph.DexClass;
import com.android.tools.r8.graph.DexDefinitionSupplier;
import com.android.tools.r8.graph.DexEncodedMethod;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.utils.Pair;
import java.util.function.Consumer;
import kotlinx.metadata.KmPackage;
@@ -58,10 +57,9 @@
}
@Override
- public Pair<KotlinClassHeader, Boolean> rewrite(
- DexClass clazz, AppView<?> appView, NamingLens namingLens) {
+ public Pair<KotlinClassHeader, Boolean> rewrite(DexClass clazz, AppView<?> appView) {
KmPackage kmPackage = new KmPackage();
- boolean rewritten = packageInfo.rewrite(kmPackage, clazz, appView, namingLens);
+ boolean rewritten = packageInfo.rewrite(kmPackage, clazz, appView);
KotlinClassMetadata.FileFacade.Writer writer = new KotlinClassMetadata.FileFacade.Writer();
kmPackage.accept(writer);
return Pair.create(writer.write().getHeader(), rewritten);
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinFlexibleTypeUpperBoundInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinFlexibleTypeUpperBoundInfo.java
index e2a2083..35e52f5 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinFlexibleTypeUpperBoundInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinFlexibleTypeUpperBoundInfo.java
@@ -7,7 +7,6 @@
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexDefinitionSupplier;
import com.android.tools.r8.graph.DexItemFactory;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.shaking.EnqueuerMetadataTraceable;
import com.android.tools.r8.utils.Reporter;
import kotlinx.metadata.KmFlexibleTypeUpperBound;
@@ -39,9 +38,7 @@
}
boolean rewrite(
- KmVisitorProviders.KmFlexibleUpperBoundVisitorProvider visitorProvider,
- AppView<?> appView,
- NamingLens namingLens) {
+ KmVisitorProviders.KmFlexibleUpperBoundVisitorProvider visitorProvider, AppView<?> appView) {
if (this == NO_FLEXIBLE_UPPER_BOUND) {
// Nothing to do.
return false;
@@ -50,8 +47,7 @@
assert false;
return false;
}
- return kotlinTypeInfo.rewrite(
- flags -> visitorProvider.get(flags, typeFlexibilityId), appView, namingLens);
+ return kotlinTypeInfo.rewrite(flags -> visitorProvider.get(flags, typeFlexibilityId), appView);
}
@Override
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinFunctionInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinFunctionInfo.java
index 5001c40..63e7c95 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinFunctionInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinFunctionInfo.java
@@ -10,7 +10,6 @@
import com.android.tools.r8.graph.DexDefinitionSupplier;
import com.android.tools.r8.graph.DexEncodedMethod;
import com.android.tools.r8.graph.DexItemFactory;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.utils.Reporter;
import java.util.List;
import kotlinx.metadata.KmFunction;
@@ -119,14 +118,13 @@
boolean rewrite(
KmVisitorProviders.KmFunctionVisitorProvider visitorProvider,
DexEncodedMethod method,
- AppView<?> appView,
- NamingLens namingLens) {
+ AppView<?> appView) {
// TODO(b/154348683): Check method for flags to pass in.
boolean rewritten = false;
String finalName = this.name;
if (method != null) {
String methodName = method.getReference().name.toString();
- String rewrittenName = namingLens.lookupName(method.getReference()).toString();
+ String rewrittenName = appView.getNamingLens().lookupName(method.getReference()).toString();
if (!methodName.equals(rewrittenName)) {
rewritten = true;
finalName = rewrittenName;
@@ -134,23 +132,21 @@
}
KmFunctionVisitor kmFunction = visitorProvider.get(flags, finalName);
// TODO(b/154348149): ReturnType could have been merged to a subtype.
- rewritten |= returnType.rewrite(kmFunction::visitReturnType, appView, namingLens);
+ rewritten |= returnType.rewrite(kmFunction::visitReturnType, appView);
for (KotlinValueParameterInfo valueParameterInfo : valueParameters) {
- rewritten |= valueParameterInfo.rewrite(kmFunction::visitValueParameter, appView, namingLens);
+ rewritten |= valueParameterInfo.rewrite(kmFunction::visitValueParameter, appView);
}
for (KotlinTypeParameterInfo typeParameterInfo : typeParameters) {
- rewritten |= typeParameterInfo.rewrite(kmFunction::visitTypeParameter, appView, namingLens);
+ rewritten |= typeParameterInfo.rewrite(kmFunction::visitTypeParameter, appView);
}
if (receiverParameterType != null) {
- rewritten |=
- receiverParameterType.rewrite(
- kmFunction::visitReceiverParameterType, appView, namingLens);
+ rewritten |= receiverParameterType.rewrite(kmFunction::visitReceiverParameterType, appView);
}
rewritten |= versionRequirements.rewrite(kmFunction::visitVersionRequirement);
JvmFunctionExtensionVisitor extensionVisitor =
(JvmFunctionExtensionVisitor) kmFunction.visitExtensions(JvmFunctionExtensionVisitor.TYPE);
if (signature != null && extensionVisitor != null) {
- rewritten |= signature.rewrite(extensionVisitor::visit, method, appView, namingLens);
+ rewritten |= signature.rewrite(extensionVisitor::visit, method, appView);
}
if (lambdaClassOrigin != null && extensionVisitor != null) {
rewritten |=
@@ -161,10 +157,9 @@
}
},
appView,
- namingLens,
null);
}
- rewritten |= contract.rewrite(kmFunction::visitContract, appView, namingLens);
+ rewritten |= contract.rewrite(kmFunction::visitContract, appView);
return rewritten;
}
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinJvmFieldSignatureInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinJvmFieldSignatureInfo.java
index 340275a..a7a8f78 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinJvmFieldSignatureInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinJvmFieldSignatureInfo.java
@@ -8,7 +8,6 @@
import com.android.tools.r8.graph.DexDefinitionSupplier;
import com.android.tools.r8.graph.DexEncodedField;
import com.android.tools.r8.graph.DexItemFactory;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.shaking.EnqueuerMetadataTraceable;
import com.android.tools.r8.utils.Box;
import java.util.function.Consumer;
@@ -38,16 +37,12 @@
KotlinTypeReference.fromDescriptor(fieldSignature.getDesc(), factory));
}
- boolean rewrite(
- Consumer<JvmFieldSignature> consumer,
- DexEncodedField field,
- AppView<?> appView,
- NamingLens namingLens) {
+ boolean rewrite(Consumer<JvmFieldSignature> consumer, DexEncodedField field, AppView<?> appView) {
boolean rewritten = false;
String finalName = name;
if (field != null) {
String fieldName = field.getReference().name.toString();
- String rewrittenName = namingLens.lookupName(field.getReference()).toString();
+ String rewrittenName = appView.getNamingLens().lookupName(field.getReference()).toString();
if (!fieldName.equals(rewrittenName)) {
rewritten = true;
finalName = rewrittenName;
@@ -55,8 +50,7 @@
}
String defValue = appView.dexItemFactory().objectType.toDescriptorString();
Box<String> renamedDescriptor = new Box<>();
- rewritten |=
- type.toRenamedDescriptorOrDefault(renamedDescriptor::set, appView, namingLens, defValue);
+ rewritten |= type.toRenamedDescriptorOrDefault(renamedDescriptor::set, appView, defValue);
consumer.accept(new JvmFieldSignature(finalName, renamedDescriptor.get()));
return rewritten;
}
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinJvmMethodSignatureInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinJvmMethodSignatureInfo.java
index 5cfa5ac..2760ece 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinJvmMethodSignatureInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinJvmMethodSignatureInfo.java
@@ -10,7 +10,6 @@
import com.android.tools.r8.graph.DexDefinitionSupplier;
import com.android.tools.r8.graph.DexEncodedMethod;
import com.android.tools.r8.graph.DexItemFactory;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.shaking.EnqueuerMetadataTraceable;
import com.android.tools.r8.utils.DescriptorUtils;
import com.google.common.collect.ImmutableList;
@@ -72,10 +71,7 @@
}
boolean rewrite(
- Consumer<JvmMethodSignature> consumer,
- DexEncodedMethod method,
- AppView<?> appView,
- NamingLens namingLens) {
+ Consumer<JvmMethodSignature> consumer, DexEncodedMethod method, AppView<?> appView) {
if (invalidDescriptor != null) {
consumer.accept(new JvmMethodSignature(name, invalidDescriptor));
return false;
@@ -85,7 +81,7 @@
boolean rewritten = false;
if (method != null) {
String methodName = method.getReference().name.toString();
- String rewrittenName = namingLens.lookupName(method.getReference()).toString();
+ String rewrittenName = appView.getNamingLens().lookupName(method.getReference()).toString();
if (!methodName.equals(rewrittenName)) {
finalName = rewrittenName;
rewritten = true;
@@ -95,13 +91,10 @@
descBuilder.append("(");
String defValue = appView.dexItemFactory().objectType.toDescriptorString();
for (KotlinTypeReference parameter : parameters) {
- rewritten |=
- parameter.toRenamedDescriptorOrDefault(
- descBuilder::append, appView, namingLens, defValue);
+ rewritten |= parameter.toRenamedDescriptorOrDefault(descBuilder::append, appView, defValue);
}
descBuilder.append(")");
- rewritten |=
- returnType.toRenamedDescriptorOrDefault(descBuilder::append, appView, namingLens, defValue);
+ rewritten |= returnType.toRenamedDescriptorOrDefault(descBuilder::append, appView, defValue);
consumer.accept(new JvmMethodSignature(finalName, descBuilder.toString()));
return rewritten;
}
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinLambdaInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinLambdaInfo.java
index b9e4f84..ffe08b4 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinLambdaInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinLambdaInfo.java
@@ -11,7 +11,6 @@
import com.android.tools.r8.graph.DexDefinitionSupplier;
import com.android.tools.r8.graph.DexEncodedMethod;
import com.android.tools.r8.graph.DexItemFactory;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.shaking.EnqueuerMetadataTraceable;
import com.android.tools.r8.utils.Reporter;
import kotlinx.metadata.KmLambda;
@@ -60,10 +59,9 @@
boolean rewrite(
KmVisitorProviders.KmLambdaVisitorProvider visitorProvider,
DexClass clazz,
- AppView<?> appView,
- NamingLens namingLens) {
+ AppView<?> appView) {
if (!hasBacking) {
- function.rewrite(visitorProvider.get()::visitFunction, null, appView, namingLens);
+ function.rewrite(visitorProvider.get()::visitFunction, null, appView);
return true;
}
DexEncodedMethod backing = null;
@@ -73,7 +71,7 @@
break;
}
}
- return function.rewrite(visitorProvider.get()::visitFunction, backing, appView, namingLens);
+ return function.rewrite(visitorProvider.get()::visitFunction, backing, appView);
}
@Override
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinLocalDelegatedPropertyInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinLocalDelegatedPropertyInfo.java
index 9548bde..4bdce09 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinLocalDelegatedPropertyInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinLocalDelegatedPropertyInfo.java
@@ -10,7 +10,6 @@
import com.android.tools.r8.graph.DexDefinitionSupplier;
import com.android.tools.r8.graph.DexItemFactory;
import com.android.tools.r8.kotlin.KmVisitorProviders.KmPropertyVisitorProvider;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.shaking.EnqueuerMetadataTraceable;
import com.android.tools.r8.utils.Reporter;
import com.google.common.collect.ImmutableList;
@@ -52,11 +51,10 @@
forEachApply(propertyInfos, prop -> prop::trace, definitionSupplier);
}
- boolean rewrite(
- KmPropertyVisitorProvider visitorProvider, AppView<?> appView, NamingLens namingLens) {
+ boolean rewrite(KmPropertyVisitorProvider visitorProvider, AppView<?> appView) {
boolean rewritten = false;
for (KotlinPropertyInfo propertyInfo : propertyInfos) {
- rewritten |= propertyInfo.rewrite(visitorProvider, null, null, null, appView, namingLens);
+ rewritten |= propertyInfo.rewrite(visitorProvider, null, null, null, appView);
}
return rewritten;
}
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataRewriter.java b/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataRewriter.java
index fb6575c..5353319 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataRewriter.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataRewriter.java
@@ -20,7 +20,6 @@
import com.android.tools.r8.graph.DexValue.DexValueArray;
import com.android.tools.r8.graph.DexValue.DexValueInt;
import com.android.tools.r8.graph.DexValue.DexValueString;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.utils.ConsumerUtils;
import com.android.tools.r8.utils.Pair;
import com.android.tools.r8.utils.ThreadUtils;
@@ -71,13 +70,11 @@
}
private final AppView<?> appView;
- private final NamingLens lens;
private final DexItemFactory factory;
private final Kotlin kotlin;
- public KotlinMetadataRewriter(AppView<?> appView, NamingLens lens) {
+ public KotlinMetadataRewriter(AppView<?> appView) {
this.appView = appView;
- this.lens = lens;
this.factory = appView.dexItemFactory();
this.kotlin = factory.kotlin;
}
@@ -130,7 +127,7 @@
}
public void runForD8(ExecutorService executorService) throws ExecutionException {
- if (lens.isIdentityLens()) {
+ if (appView.getNamingLens().isIdentityLens()) {
return;
}
final WriteMetadataFieldInfo writeMetadataFieldInfo = WriteMetadataFieldInfo.rewriteAll();
@@ -158,7 +155,7 @@
DexAnnotation oldMeta,
WriteMetadataFieldInfo writeMetadataFieldInfo) {
try {
- Pair<KotlinClassHeader, Boolean> kotlinClassHeader = kotlinInfo.rewrite(clazz, appView, lens);
+ Pair<KotlinClassHeader, Boolean> kotlinClassHeader = kotlinInfo.rewrite(clazz, appView);
// TODO(b/185756596): Remove when special handling is no longer needed.
if (!kotlinClassHeader.getSecond()
&& appView.options().testing.keepMetadataInR8IfNotRewritten) {
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataUtils.java b/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataUtils.java
index 1d927fe..d5884f5 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataUtils.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataUtils.java
@@ -14,7 +14,6 @@
import com.android.tools.r8.graph.DexMethod;
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.shaking.ProguardConfiguration;
import com.android.tools.r8.shaking.ProguardConfigurationRule;
import com.android.tools.r8.shaking.ProguardKeepRule;
@@ -51,8 +50,7 @@
}
@Override
- public Pair<KotlinClassHeader, Boolean> rewrite(
- DexClass clazz, AppView<?> appView, NamingLens namingLens) {
+ public Pair<KotlinClassHeader, Boolean> rewrite(DexClass clazz, AppView<?> appView) {
throw new Unreachable("Should never be called");
}
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinMultiFileClassFacadeInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinMultiFileClassFacadeInfo.java
index 0545b20..2a89998 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinMultiFileClassFacadeInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinMultiFileClassFacadeInfo.java
@@ -10,7 +10,6 @@
import com.android.tools.r8.graph.DexClass;
import com.android.tools.r8.graph.DexDefinitionSupplier;
import com.android.tools.r8.graph.DexItemFactory;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.utils.Pair;
import com.google.common.collect.ImmutableList;
import java.util.ArrayList;
@@ -56,8 +55,7 @@
}
@Override
- public Pair<KotlinClassHeader, Boolean> rewrite(
- DexClass clazz, AppView<?> appView, NamingLens namingLens) {
+ public Pair<KotlinClassHeader, Boolean> rewrite(DexClass clazz, AppView<?> appView) {
List<String> partClassNameStrings = new ArrayList<>(partClassNames.size());
boolean rewritten = false;
for (KotlinTypeReference partClassName : partClassNames) {
@@ -69,7 +67,6 @@
}
},
appView,
- namingLens,
null);
}
KotlinClassMetadata.MultiFileClassFacade.Writer writer =
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinMultiFileClassPartInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinMultiFileClassPartInfo.java
index 24cb385..6c96b8d 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinMultiFileClassPartInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinMultiFileClassPartInfo.java
@@ -8,7 +8,6 @@
import com.android.tools.r8.graph.DexClass;
import com.android.tools.r8.graph.DexDefinitionSupplier;
import com.android.tools.r8.graph.DexEncodedMethod;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.utils.Pair;
import java.util.function.Consumer;
import kotlinx.metadata.KmPackage;
@@ -65,10 +64,9 @@
}
@Override
- public Pair<KotlinClassHeader, Boolean> rewrite(
- DexClass clazz, AppView<?> appView, NamingLens namingLens) {
+ public Pair<KotlinClassHeader, Boolean> rewrite(DexClass clazz, AppView<?> appView) {
KmPackage kmPackage = new KmPackage();
- boolean rewritten = packageInfo.rewrite(kmPackage, clazz, appView, namingLens);
+ boolean rewritten = packageInfo.rewrite(kmPackage, clazz, appView);
KotlinClassMetadata.MultiFileClassPart.Writer writer =
new KotlinClassMetadata.MultiFileClassPart.Writer();
kmPackage.accept(writer);
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinPackageInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinPackageInfo.java
index fa483ae..f1e2573 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinPackageInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinPackageInfo.java
@@ -12,7 +12,6 @@
import com.android.tools.r8.graph.DexDefinitionSupplier;
import com.android.tools.r8.graph.DexEncodedField;
import com.android.tools.r8.graph.DexEncodedMethod;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.shaking.EnqueuerMetadataTraceable;
import java.util.HashMap;
import java.util.Map;
@@ -74,7 +73,7 @@
originalMembersWithKotlinInfo);
}
- boolean rewrite(KmPackage kmPackage, DexClass clazz, AppView<?> appView, NamingLens namingLens) {
+ boolean rewrite(KmPackage kmPackage, DexClass clazz, AppView<?> appView) {
KotlinMetadataMembersTracker rewrittenReferences = new KotlinMetadataMembersTracker(appView);
boolean rewritten =
containerInfo.rewrite(
@@ -83,13 +82,11 @@
kmPackage::visitTypeAlias,
clazz,
appView,
- namingLens,
rewrittenReferences);
JvmPackageExtensionVisitor extensionVisitor =
(JvmPackageExtensionVisitor) kmPackage.visitExtensions(JvmPackageExtensionVisitor.TYPE);
rewritten |=
- localDelegatedProperties.rewrite(
- extensionVisitor::visitLocalDelegatedProperty, appView, namingLens);
+ localDelegatedProperties.rewrite(extensionVisitor::visitLocalDelegatedProperty, appView);
extensionVisitor.visitModuleName(moduleName);
extensionVisitor.visitEnd();
return rewritten || !originalMembersWithKotlinInfo.isEqual(rewrittenReferences, appView);
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinPropertyInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinPropertyInfo.java
index 39ab90c..6d10139 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinPropertyInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinPropertyInfo.java
@@ -11,7 +11,6 @@
import com.android.tools.r8.graph.DexEncodedField;
import com.android.tools.r8.graph.DexEncodedMethod;
import com.android.tools.r8.graph.DexItemFactory;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.utils.Box;
import com.android.tools.r8.utils.Reporter;
import java.util.List;
@@ -144,25 +143,22 @@
DexEncodedField field,
DexEncodedMethod getter,
DexEncodedMethod setter,
- AppView<?> appView,
- NamingLens namingLens) {
+ AppView<?> appView) {
// TODO(b/154348683): Flags again.
KmPropertyVisitor kmProperty = visitorProvider.get(flags, name, getterFlags, setterFlags);
// TODO(b/154348149): ReturnType could have been merged to a subtype.
boolean rewritten = false;
if (returnType != null) {
- rewritten = returnType.rewrite(kmProperty::visitReturnType, appView, namingLens);
+ rewritten = returnType.rewrite(kmProperty::visitReturnType, appView);
}
if (receiverParameterType != null) {
- rewritten |=
- receiverParameterType.rewrite(
- kmProperty::visitReceiverParameterType, appView, namingLens);
+ rewritten |= receiverParameterType.rewrite(kmProperty::visitReceiverParameterType, appView);
}
if (setterParameter != null) {
- rewritten |= setterParameter.rewrite(kmProperty::visitSetterParameter, appView, namingLens);
+ rewritten |= setterParameter.rewrite(kmProperty::visitSetterParameter, appView);
}
for (KotlinTypeParameterInfo typeParameter : typeParameters) {
- rewritten |= typeParameter.rewrite(kmProperty::visitTypeParameter, appView, namingLens);
+ rewritten |= typeParameter.rewrite(kmProperty::visitTypeParameter, appView);
}
rewritten |= versionRequirements.rewrite(kmProperty::visitVersionRequirement);
JvmPropertyExtensionVisitor extensionVisitor =
@@ -170,18 +166,15 @@
if (extensionVisitor != null) {
Box<JvmFieldSignature> rewrittenFieldSignature = new Box<>();
if (fieldSignature != null) {
- rewritten |=
- fieldSignature.rewrite(rewrittenFieldSignature::set, field, appView, namingLens);
+ rewritten |= fieldSignature.rewrite(rewrittenFieldSignature::set, field, appView);
}
Box<JvmMethodSignature> rewrittenGetterSignature = new Box<>();
if (getterSignature != null) {
- rewritten |=
- getterSignature.rewrite(rewrittenGetterSignature::set, getter, appView, namingLens);
+ rewritten |= getterSignature.rewrite(rewrittenGetterSignature::set, getter, appView);
}
Box<JvmMethodSignature> rewrittenSetterSignature = new Box<>();
if (setterSignature != null) {
- rewritten |=
- setterSignature.rewrite(rewrittenSetterSignature::set, setter, appView, namingLens);
+ rewritten |= setterSignature.rewrite(rewrittenSetterSignature::set, setter, appView);
}
extensionVisitor.visit(
jvmFlags,
@@ -191,12 +184,12 @@
if (syntheticMethodForAnnotations != null) {
rewritten |=
syntheticMethodForAnnotations.rewrite(
- extensionVisitor::visitSyntheticMethodForAnnotations, null, appView, namingLens);
+ extensionVisitor::visitSyntheticMethodForAnnotations, null, appView);
}
if (syntheticMethodForDelegate != null) {
rewritten |=
syntheticMethodForDelegate.rewrite(
- extensionVisitor::visitSyntheticMethodForDelegate, null, appView, namingLens);
+ extensionVisitor::visitSyntheticMethodForDelegate, null, appView);
}
}
return rewritten;
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinSyntheticClassInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinSyntheticClassInfo.java
index ee55f8b..fb9b55f 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinSyntheticClassInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinSyntheticClassInfo.java
@@ -7,7 +7,6 @@
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexClass;
import com.android.tools.r8.graph.DexDefinitionSupplier;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.utils.Pair;
import kotlinx.metadata.KmLambda;
import kotlinx.metadata.jvm.KotlinClassHeader;
@@ -74,13 +73,12 @@
}
@Override
- public Pair<KotlinClassHeader, Boolean> rewrite(
- DexClass clazz, AppView<?> appView, NamingLens namingLens) {
+ public Pair<KotlinClassHeader, Boolean> rewrite(DexClass clazz, AppView<?> appView) {
Writer writer = new Writer();
boolean rewritten = false;
if (lambda != null) {
KmLambda kmLambda = new KmLambda();
- rewritten = lambda.rewrite(() -> kmLambda, clazz, appView, namingLens);
+ rewritten = lambda.rewrite(() -> kmLambda, clazz, appView);
kmLambda.accept(writer);
}
return Pair.create(writer.write().getHeader(), rewritten);
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinTypeAliasInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinTypeAliasInfo.java
index c4e307b..8f89b9e 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinTypeAliasInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinTypeAliasInfo.java
@@ -9,7 +9,6 @@
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexDefinitionSupplier;
import com.android.tools.r8.graph.DexItemFactory;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.shaking.EnqueuerMetadataTraceable;
import com.android.tools.r8.utils.Reporter;
import java.util.List;
@@ -59,19 +58,15 @@
}
boolean rewrite(
- KmVisitorProviders.KmTypeAliasVisitorProvider visitorProvider,
- AppView<?> appView,
- NamingLens namingLens) {
+ KmVisitorProviders.KmTypeAliasVisitorProvider visitorProvider, AppView<?> appView) {
KmTypeAliasVisitor kmTypeAliasVisitor = visitorProvider.get(flags, name);
- boolean rewritten =
- underlyingType.rewrite(kmTypeAliasVisitor::visitUnderlyingType, appView, namingLens);
- rewritten |= expandedType.rewrite(kmTypeAliasVisitor::visitExpandedType, appView, namingLens);
+ boolean rewritten = underlyingType.rewrite(kmTypeAliasVisitor::visitUnderlyingType, appView);
+ rewritten |= expandedType.rewrite(kmTypeAliasVisitor::visitExpandedType, appView);
for (KotlinTypeParameterInfo typeParameter : typeParameters) {
- rewritten |=
- typeParameter.rewrite(kmTypeAliasVisitor::visitTypeParameter, appView, namingLens);
+ rewritten |= typeParameter.rewrite(kmTypeAliasVisitor::visitTypeParameter, appView);
}
for (KotlinAnnotationInfo annotation : annotations) {
- rewritten |= annotation.rewrite(kmTypeAliasVisitor::visitAnnotation, appView, namingLens);
+ rewritten |= annotation.rewrite(kmTypeAliasVisitor::visitAnnotation, appView);
}
rewritten |= versionRequirements.rewrite(kmTypeAliasVisitor::visitVersionRequirement);
return rewritten;
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinTypeInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinTypeInfo.java
index 6127754..e83cff6 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinTypeInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinTypeInfo.java
@@ -83,31 +83,24 @@
return arguments.build();
}
- boolean rewrite(
- KmVisitorProviders.KmTypeVisitorProvider visitorProvider,
- AppView<?> appView,
- NamingLens namingLens) {
+ boolean rewrite(KmVisitorProviders.KmTypeVisitorProvider visitorProvider, AppView<?> appView) {
// TODO(b/154348683): Check for correct flags
KmTypeVisitor kmTypeVisitor = visitorProvider.get(flags);
- boolean rewritten = classifier.rewrite(kmTypeVisitor, appView, namingLens);
+ NamingLens namingLens = appView.getNamingLens();
+ boolean rewritten = classifier.rewrite(kmTypeVisitor, appView);
if (abbreviatedType != null) {
- rewritten |=
- abbreviatedType.rewrite(kmTypeVisitor::visitAbbreviatedType, appView, namingLens);
+ rewritten |= abbreviatedType.rewrite(kmTypeVisitor::visitAbbreviatedType, appView);
}
if (outerType != null) {
- rewritten |= outerType.rewrite(kmTypeVisitor::visitOuterType, appView, namingLens);
+ rewritten |= outerType.rewrite(kmTypeVisitor::visitOuterType, appView);
}
for (KotlinTypeProjectionInfo argument : arguments) {
rewritten |=
argument.rewrite(
- kmTypeVisitor::visitArgument,
- kmTypeVisitor::visitStarProjection,
- appView,
- namingLens);
+ kmTypeVisitor::visitArgument, kmTypeVisitor::visitStarProjection, appView);
}
rewritten |=
- flexibleTypeUpperBound.rewrite(
- kmTypeVisitor::visitFlexibleTypeUpperBound, appView, namingLens);
+ flexibleTypeUpperBound.rewrite(kmTypeVisitor::visitFlexibleTypeUpperBound, appView);
if (annotations.isEmpty() && !isRaw) {
return rewritten;
}
@@ -115,7 +108,7 @@
(JvmTypeExtensionVisitor) kmTypeVisitor.visitExtensions(JvmTypeExtensionVisitor.TYPE);
if (extensionVisitor != null) {
for (KotlinAnnotationInfo annotation : annotations) {
- rewritten |= annotation.rewrite(extensionVisitor::visitAnnotation, appView, namingLens);
+ rewritten |= annotation.rewrite(extensionVisitor::visitAnnotation, appView);
}
extensionVisitor.visit(isRaw);
}
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinTypeParameterInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinTypeParameterInfo.java
index 21aeaa1..e6cc10f 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinTypeParameterInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinTypeParameterInfo.java
@@ -9,7 +9,6 @@
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexDefinitionSupplier;
import com.android.tools.r8.graph.DexItemFactory;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.shaking.EnqueuerMetadataTraceable;
import com.android.tools.r8.utils.Reporter;
import com.google.common.collect.ImmutableList;
@@ -85,14 +84,11 @@
}
boolean rewrite(
- KmVisitorProviders.KmTypeParameterVisitorProvider visitorProvider,
- AppView<?> appView,
- NamingLens namingLens) {
+ KmVisitorProviders.KmTypeParameterVisitorProvider visitorProvider, AppView<?> appView) {
KmTypeParameterVisitor kmTypeParameterVisitor = visitorProvider.get(flags, name, id, variance);
boolean rewritten = false;
for (KotlinTypeInfo originalUpperBound : originalUpperBounds) {
- rewritten |=
- originalUpperBound.rewrite(kmTypeParameterVisitor::visitUpperBound, appView, namingLens);
+ rewritten |= originalUpperBound.rewrite(kmTypeParameterVisitor::visitUpperBound, appView);
}
if (annotations.isEmpty()) {
return rewritten;
@@ -102,7 +98,7 @@
kmTypeParameterVisitor.visitExtensions(JvmTypeParameterExtensionVisitor.TYPE);
if (extensionVisitor != null) {
for (KotlinAnnotationInfo annotation : annotations) {
- rewritten |= annotation.rewrite(extensionVisitor::visitAnnotation, appView, namingLens);
+ rewritten |= annotation.rewrite(extensionVisitor::visitAnnotation, appView);
}
}
return rewritten;
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinTypeProjectionInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinTypeProjectionInfo.java
index 8fe760b..85791fe 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinTypeProjectionInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinTypeProjectionInfo.java
@@ -7,7 +7,6 @@
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexDefinitionSupplier;
import com.android.tools.r8.graph.DexItemFactory;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.shaking.EnqueuerMetadataTraceable;
import com.android.tools.r8.utils.Reporter;
import kotlinx.metadata.KmTypeProjection;
@@ -38,13 +37,12 @@
boolean rewrite(
KmVisitorProviders.KmTypeProjectionVisitorProvider visitorProvider,
KmVisitorProviders.KmTypeStarProjectionVisitorProvider starProjectionProvider,
- AppView<?> appView,
- NamingLens namingLens) {
+ AppView<?> appView) {
if (isStarProjection()) {
starProjectionProvider.get();
return false;
} else {
- return typeInfo.rewrite(flags -> visitorProvider.get(flags, variance), appView, namingLens);
+ return typeInfo.rewrite(flags -> visitorProvider.get(flags, variance), appView);
}
}
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinTypeReference.java b/src/main/java/com/android/tools/r8/kotlin/KotlinTypeReference.java
index 4fd93a0..adbb277 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinTypeReference.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinTypeReference.java
@@ -12,7 +12,6 @@
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.kotlin.Kotlin.ClassClassifiers;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.shaking.EnqueuerMetadataTraceable;
import com.android.tools.r8.utils.DescriptorUtils;
import java.util.function.Consumer;
@@ -72,7 +71,6 @@
boolean toRenamedDescriptorOrDefault(
Consumer<String> rewrittenConsumer,
AppView<?> appView,
- NamingLens namingLens,
String defaultValue) {
if (known == null) {
rewrittenConsumer.accept(originalName);
@@ -91,7 +89,7 @@
return true;
}
}
- String renamedString = namingLens.lookupDescriptor(rewrittenType).toString();
+ String renamedString = appView.getNamingLens().lookupDescriptor(rewrittenType).toString();
rewrittenConsumer.accept(renamedString);
return !known.toDescriptorString().equals(renamedString);
}
@@ -107,7 +105,6 @@
boolean toRenamedBinaryNameOrDefault(
Consumer<String> rewrittenConsumer,
AppView<?> appView,
- NamingLens namingLens,
String defaultValue) {
if (known == null) {
// Unknown values are always on the input form, so we can just return it.
@@ -124,7 +121,6 @@
}
},
appView,
- namingLens,
defaultValue);
}
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinValueParameterInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinValueParameterInfo.java
index 293c35a..1e12db6 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinValueParameterInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinValueParameterInfo.java
@@ -7,7 +7,6 @@
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexDefinitionSupplier;
import com.android.tools.r8.graph.DexItemFactory;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.shaking.EnqueuerMetadataTraceable;
import com.android.tools.r8.utils.Reporter;
import com.google.common.collect.ImmutableList;
@@ -67,15 +66,12 @@
}
boolean rewrite(
- KmVisitorProviders.KmValueParameterVisitorProvider visitorProvider,
- AppView<?> appView,
- NamingLens namingLens) {
+ KmVisitorProviders.KmValueParameterVisitorProvider visitorProvider, AppView<?> appView) {
KmValueParameterVisitor kmValueParameterVisitor = visitorProvider.get(flags, name);
- boolean rewritten = type.rewrite(kmValueParameterVisitor::visitType, appView, namingLens);
+ boolean rewritten = type.rewrite(kmValueParameterVisitor::visitType, appView);
if (varargElementType != null) {
rewritten |=
- varargElementType.rewrite(
- kmValueParameterVisitor::visitVarargElementType, appView, namingLens);
+ varargElementType.rewrite(kmValueParameterVisitor::visitVarargElementType, appView);
}
return rewritten;
}
diff --git a/src/main/java/com/android/tools/r8/naming/PrefixRewritingNamingLens.java b/src/main/java/com/android/tools/r8/naming/PrefixRewritingNamingLens.java
index 2add666..297c363 100644
--- a/src/main/java/com/android/tools/r8/naming/PrefixRewritingNamingLens.java
+++ b/src/main/java/com/android/tools/r8/naming/PrefixRewritingNamingLens.java
@@ -16,27 +16,20 @@
// Naming lens for rewriting type prefixes.
public class PrefixRewritingNamingLens extends NonIdentityNamingLens {
- final NamingLens namingLens;
- final InternalOptions options;
- final AppView<?> appView;
+ private final AppView<?> appView;
+ private final NamingLens namingLens;
public static NamingLens createPrefixRewritingNamingLens(AppView<?> appView) {
- return createPrefixRewritingNamingLens(appView, NamingLens.getIdentityLens());
- }
-
- public static NamingLens createPrefixRewritingNamingLens(
- AppView<?> appView, NamingLens namingLens) {
if (!appView.typeRewriter.isRewriting()) {
- return namingLens;
+ return appView.getNamingLens();
}
- return new PrefixRewritingNamingLens(namingLens, appView);
+ return new PrefixRewritingNamingLens(appView);
}
- public PrefixRewritingNamingLens(NamingLens namingLens, AppView<?> appView) {
+ public PrefixRewritingNamingLens(AppView<?> appView) {
super(appView.dexItemFactory());
this.appView = appView;
- this.namingLens = namingLens;
- this.options = appView.options();
+ this.namingLens = appView.getNamingLens();
}
private boolean isRenamed(DexType type) {
diff --git a/src/main/java/com/android/tools/r8/naming/RecordRewritingNamingLens.java b/src/main/java/com/android/tools/r8/naming/RecordRewritingNamingLens.java
index fe2654f..9fdb66a 100644
--- a/src/main/java/com/android/tools/r8/naming/RecordRewritingNamingLens.java
+++ b/src/main/java/com/android/tools/r8/naming/RecordRewritingNamingLens.java
@@ -17,25 +17,24 @@
// Naming lens for rewriting java.lang.Record to the internal RecordTag type.
public class RecordRewritingNamingLens extends NonIdentityNamingLens {
- final NamingLens namingLens;
private final DexItemFactory factory;
+ private final NamingLens namingLens;
- public static NamingLens createRecordRewritingNamingLens(
- AppView<?> appView, NamingLens namingLens) {
+ public static NamingLens createRecordRewritingNamingLens(AppView<?> appView) {
if (appView.options().shouldDesugarRecords()
&& appView
.appInfo()
.definitionForWithoutExistenceAssert(appView.dexItemFactory().recordType)
!= null) {
- return new RecordRewritingNamingLens(namingLens, appView);
+ return new RecordRewritingNamingLens(appView);
}
- return namingLens;
+ return appView.getNamingLens();
}
- public RecordRewritingNamingLens(NamingLens namingLens, AppView<?> appView) {
+ public RecordRewritingNamingLens(AppView<?> appView) {
super(appView.dexItemFactory());
- this.namingLens = namingLens;
- factory = appView.dexItemFactory();
+ this.factory = appView.dexItemFactory();
+ this.namingLens = appView.getNamingLens();
}
private boolean isRenamed(DexType type) {
diff --git a/src/main/java/com/android/tools/r8/naming/signature/GenericSignatureRewriter.java b/src/main/java/com/android/tools/r8/naming/signature/GenericSignatureRewriter.java
index e50737d..e4b384f 100644
--- a/src/main/java/com/android/tools/r8/naming/signature/GenericSignatureRewriter.java
+++ b/src/main/java/com/android/tools/r8/naming/signature/GenericSignatureRewriter.java
@@ -12,7 +12,6 @@
import com.android.tools.r8.graph.GenericSignatureContextBuilder;
import com.android.tools.r8.graph.GenericSignaturePartialTypeArgumentApplier;
import com.android.tools.r8.graph.GenericSignatureTypeRewriter;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.utils.IterableUtils;
import com.android.tools.r8.utils.ThreadUtils;
import java.util.concurrent.ExecutionException;
@@ -24,23 +23,21 @@
public class GenericSignatureRewriter {
private final AppView<?> appView;
- private final NamingLens namingLens;
private final GenericSignatureContextBuilder contextBuilder;
- public GenericSignatureRewriter(AppView<?> appView, NamingLens namingLens) {
- this(appView, namingLens, null);
+ public GenericSignatureRewriter(AppView<?> appView) {
+ this(appView, null);
}
public GenericSignatureRewriter(
- AppView<?> appView, NamingLens namingLens, GenericSignatureContextBuilder contextBuilder) {
+ AppView<?> appView, GenericSignatureContextBuilder contextBuilder) {
this.appView = appView;
- this.namingLens = namingLens;
this.contextBuilder = contextBuilder;
}
public void runForD8(Iterable<? extends DexProgramClass> classes, ExecutorService executorService)
throws ExecutionException {
- if (namingLens.isIdentityLens()) {
+ if (appView.getNamingLens().isIdentityLens()) {
return;
}
run(classes, executorService);
@@ -50,7 +47,7 @@
throws ExecutionException {
// Rewrite signature annotations for applications that are minified or if we have liveness
// information, since we could have pruned types.
- if (namingLens.isIdentityLens()
+ if (appView.getNamingLens().isIdentityLens()
&& !appView.appInfo().hasLiveness()
&& !appView.options().parseSignatureAttribute()) {
return;
diff --git a/src/main/java/com/android/tools/r8/relocator/Relocator.java b/src/main/java/com/android/tools/r8/relocator/Relocator.java
index 6f889ff..711610f 100644
--- a/src/main/java/com/android/tools/r8/relocator/Relocator.java
+++ b/src/main/java/com/android/tools/r8/relocator/Relocator.java
@@ -16,7 +16,6 @@
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexApplication;
import com.android.tools.r8.jar.CfApplicationWriter;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.naming.signature.GenericSignatureRewriter;
import com.android.tools.r8.synthesis.SyntheticItems.GlobalSyntheticsStrategy;
import com.android.tools.r8.utils.AndroidApp;
@@ -85,12 +84,11 @@
appView.setAppServices(AppServices.builder(appView).build());
SimplePackagesRewritingMapper packageRemapper = new SimplePackagesRewritingMapper(appView);
- NamingLens namingLens = packageRemapper.compute(command.getMapping());
+ appView.setNamingLens(packageRemapper.compute(command.getMapping()));
- new GenericSignatureRewriter(appView, namingLens).run(appInfo.classes(), executor);
+ new GenericSignatureRewriter(appView).run(appInfo.classes(), executor);
- new CfApplicationWriter(appView, new Marker(Tool.Relocator), namingLens)
- .write(command.getConsumer());
+ new CfApplicationWriter(appView, new Marker(Tool.Relocator)).write(command.getConsumer());
options.printWarnings();
} catch (ExecutionException e) {
throw unwrapExecutionException(e);
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 f23e6cf..ffba372 100644
--- a/src/main/java/com/android/tools/r8/synthesis/SyntheticItems.java
+++ b/src/main/java/com/android/tools/r8/synthesis/SyntheticItems.java
@@ -229,11 +229,11 @@
this.globalSyntheticsStrategy = globalSyntheticsStrategy;
}
- public Map<DexType, Set<DexType>> getFinalGlobalSyntheticContexts(
- AppView appView, NamingLens namingLens) {
+ public Map<DexType, Set<DexType>> getFinalGlobalSyntheticContexts(AppView appView) {
assert isFinalized();
DexItemFactory factory = appView.dexItemFactory();
ImmutableMap<DexType, Set<DexType>> globalContexts = committed.getGlobalContexts();
+ NamingLens namingLens = appView.getNamingLens();
Map<DexType, Set<DexType>> rewritten = new IdentityHashMap<>(globalContexts.size());
globalContexts.forEach(
(global, contexts) -> {
diff --git a/src/main/java/com/android/tools/r8/utils/InternalGlobalSyntheticsProgramConsumer.java b/src/main/java/com/android/tools/r8/utils/InternalGlobalSyntheticsProgramConsumer.java
index 81929a2..a1e7b70 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalGlobalSyntheticsProgramConsumer.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalGlobalSyntheticsProgramConsumer.java
@@ -17,7 +17,6 @@
import com.android.tools.r8.errors.Unreachable;
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexType;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.references.Reference;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -117,7 +116,7 @@
}
@Override
- public void finished(AppView<?> appView, NamingLens namingLens) {
+ public void finished(AppView<?> appView) {
byte[] bytes = null;
try {
bytes = builder.build();
@@ -201,9 +200,9 @@
}
@Override
- public void finished(AppView<?> appView, NamingLens namingLens) {
+ public void finished(AppView<?> appView) {
Map<DexType, Set<DexType>> globalsToContexts =
- appView.getSyntheticItems().getFinalGlobalSyntheticContexts(appView, namingLens);
+ appView.getSyntheticItems().getFinalGlobalSyntheticContexts(appView);
Map<DexType, Set<DexType>> contextToGlobals = new IdentityHashMap<>();
for (DexType globalType : globalToBytes.keySet()) {
// It would be good to assert that the global is a synthetic type, but the naming-lens
@@ -249,5 +248,5 @@
}
}
- public abstract void finished(AppView<?> appView, NamingLens namingLens);
+ public abstract void finished(AppView<?> appView);
}
diff --git a/src/main/java/com/android/tools/r8/utils/LineNumberOptimizer.java b/src/main/java/com/android/tools/r8/utils/LineNumberOptimizer.java
index 012f26e..fb61406 100644
--- a/src/main/java/com/android/tools/r8/utils/LineNumberOptimizer.java
+++ b/src/main/java/com/android/tools/r8/utils/LineNumberOptimizer.java
@@ -40,7 +40,6 @@
import com.android.tools.r8.graph.DexString;
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.graph.DexValue.DexValueString;
-import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ProgramMethod;
import com.android.tools.r8.ir.code.Position;
import com.android.tools.r8.ir.code.Position.OutlineCallerPosition;
@@ -57,7 +56,6 @@
import com.android.tools.r8.naming.MemberNaming;
import com.android.tools.r8.naming.MemberNaming.FieldSignature;
import com.android.tools.r8.naming.MemberNaming.MethodSignature;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.naming.ProguardMapSupplier;
import com.android.tools.r8.naming.ProguardMapSupplier.ProguardMapId;
import com.android.tools.r8.naming.Range;
@@ -333,7 +331,6 @@
public static ProguardMapId runAndWriteMap(
AndroidApp inputApp,
AppView<?> appView,
- NamingLens namingLens,
Timing timing,
OriginalSourceFiles originalSourceFiles,
DebugRepresentationPredicate representation) {
@@ -345,9 +342,7 @@
ClassNameMapper mapper =
run(
appView,
- appView.appInfo().app(),
inputApp,
- namingLens,
originalSourceFiles,
representation);
timing.end();
@@ -470,9 +465,7 @@
public static ClassNameMapper run(
AppView<?> appView,
- DexApplication application,
AndroidApp inputApp,
- NamingLens namingLens,
OriginalSourceFiles originalSourceFiles,
DebugRepresentationPredicate representation) {
// For finding methods in kotlin files based on SourceDebugExtensions, we use a line method map.
@@ -490,17 +483,17 @@
: new Pc2PcMappingSupport(appView.options().allowDiscardingResidualDebugInfo());
// Collect which files contain which classes that need to have their line numbers optimized.
- for (DexProgramClass clazz : application.classes()) {
+ for (DexProgramClass clazz : appView.appInfo().classes()) {
boolean isSyntheticClass = appView.getSyntheticItems().isSyntheticClass(clazz);
IdentityHashMap<DexString, List<ProgramMethod>> methodsByRenamedName =
- groupMethodsByRenamedName(appView.graphLens(), namingLens, clazz);
+ groupMethodsByRenamedName(appView, clazz);
// At this point we don't know if we really need to add this class to the builder.
// It depends on whether any methods/fields are renamed or some methods contain positions.
// Create a supplier which creates a new, cached ClassNaming.Builder on-demand.
DexType originalType = appView.graphLens().getOriginalType(clazz.type);
- DexString renamedDescriptor = namingLens.lookupDescriptor(clazz.getType());
+ DexString renamedDescriptor = appView.getNamingLens().lookupDescriptor(clazz.getType());
LazyBox<ClassNaming.Builder> onDemandClassNamingBuilder =
new LazyBox<>(
() ->
@@ -531,8 +524,7 @@
addClassToClassNaming(originalType, renamedDescriptor, onDemandClassNamingBuilder);
// First transfer renamed fields to classNamingBuilder.
- addFieldsToClassNaming(
- appView.graphLens(), namingLens, clazz, originalType, onDemandClassNamingBuilder);
+ addFieldsToClassNaming(appView, clazz, originalType, onDemandClassNamingBuilder);
// Then process the methods, ordered by renamed name.
List<DexString> renamedMethodNames = new ArrayList<>(methodsByRenamedName.keySet());
@@ -600,7 +592,8 @@
MethodSignature originalSignature =
MethodSignature.fromDexMethod(originalMethod, originalMethod.holder != originalType);
- DexString obfuscatedNameDexString = namingLens.lookupName(method.getReference());
+ DexString obfuscatedNameDexString =
+ appView.getNamingLens().lookupName(method.getReference());
String obfuscatedName = obfuscatedNameDexString.toString();
List<MappingInformation> methodMappingInfo = new ArrayList<>();
@@ -903,16 +896,15 @@
}
private static void addFieldsToClassNaming(
- GraphLens graphLens,
- NamingLens namingLens,
+ AppView<?> appView,
DexProgramClass clazz,
DexType originalType,
LazyBox<Builder> onDemandClassNamingBuilder) {
clazz.forEachField(
dexEncodedField -> {
DexField dexField = dexEncodedField.getReference();
- DexField originalField = graphLens.getOriginalFieldSignature(dexField);
- DexString renamedName = namingLens.lookupName(dexField);
+ DexField originalField = appView.graphLens().getOriginalFieldSignature(dexField);
+ DexString renamedName = appView.getNamingLens().lookupName(dexField);
if (renamedName != originalField.name || originalField.holder != originalType) {
FieldSignature originalSignature =
FieldSignature.fromDexField(originalField, originalField.holder != originalType);
@@ -923,16 +915,16 @@
}
public static IdentityHashMap<DexString, List<ProgramMethod>> groupMethodsByRenamedName(
- GraphLens graphLens, NamingLens namingLens, DexProgramClass clazz) {
+ AppView<?> appView, DexProgramClass clazz) {
IdentityHashMap<DexString, List<ProgramMethod>> methodsByRenamedName =
new IdentityHashMap<>(clazz.getMethodCollection().size());
for (ProgramMethod programMethod : clazz.programMethods()) {
// Add method only if renamed, moved, or contains positions.
DexEncodedMethod definition = programMethod.getDefinition();
DexMethod method = programMethod.getReference();
- DexString renamedName = namingLens.lookupName(method);
+ DexString renamedName = appView.getNamingLens().lookupName(method);
if (renamedName != method.name
- || graphLens.getOriginalMethodSignature(method) != method
+ || appView.graphLens().getOriginalMethodSignature(method) != method
|| doesContainPositions(definition)
|| definition.isD8R8Synthesized()) {
methodsByRenamedName
diff --git a/src/test/java/com/android/tools/r8/ToolHelper.java b/src/test/java/com/android/tools/r8/ToolHelper.java
index 50cce70..bc5f2e4 100644
--- a/src/test/java/com/android/tools/r8/ToolHelper.java
+++ b/src/test/java/com/android/tools/r8/ToolHelper.java
@@ -23,7 +23,6 @@
import com.android.tools.r8.graph.DexApplication;
import com.android.tools.r8.graph.DexItemFactory;
import com.android.tools.r8.graph.DirectMappedDexApplication;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.position.Position;
import com.android.tools.r8.shaking.FilteredClassPath;
@@ -2275,12 +2274,7 @@
public static void writeApplication(AppView<?> appView, InternalOptions options)
throws ExecutionException {
- R8.writeApplication(
- Executors.newSingleThreadExecutor(),
- appView,
- NamingLens.getIdentityLens(),
- options,
- null);
+ R8.writeApplication(appView, null, Executors.newSingleThreadExecutor());
}
public static void disassemble(AndroidApp app, PrintStream ps) throws IOException {
diff --git a/src/test/java/com/android/tools/r8/dex/DebugByteCodeWriterTest.java b/src/test/java/com/android/tools/r8/dex/DebugByteCodeWriterTest.java
index 066e758..90cf068 100644
--- a/src/test/java/com/android/tools/r8/dex/DebugByteCodeWriterTest.java
+++ b/src/test/java/com/android/tools/r8/dex/DebugByteCodeWriterTest.java
@@ -18,7 +18,6 @@
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
import com.android.tools.r8.ir.conversion.LensCodeRewriterUtils;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.synthesis.SyntheticItems.GlobalSyntheticsStrategy;
import com.android.tools.r8.utils.InternalOptions;
import com.android.tools.r8.utils.Reporter;
@@ -52,7 +51,6 @@
GlobalSyntheticsStrategy.forNonSynthesizing()));
return new ObjectToOffsetMapping(
appView,
- NamingLens.getIdentityLens(),
new LensCodeRewriterUtils(appView),
Collections.emptyList(),
Collections.emptyList(),
diff --git a/src/test/java/com/android/tools/r8/maindexlist/MainDexListTests.java b/src/test/java/com/android/tools/r8/maindexlist/MainDexListTests.java
index a540713..ed70ece 100644
--- a/src/test/java/com/android/tools/r8/maindexlist/MainDexListTests.java
+++ b/src/test/java/com/android/tools/r8/maindexlist/MainDexListTests.java
@@ -67,7 +67,6 @@
import com.android.tools.r8.ir.regalloc.RegisterAllocator;
import com.android.tools.r8.ir.synthetic.SynthesizedCode;
import com.android.tools.r8.jasmin.JasminBuilder;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.origin.SynthesizedOrigin;
import com.android.tools.r8.synthesis.SyntheticItems.GlobalSyntheticsStrategy;
@@ -892,8 +891,7 @@
AppView.createForD8(
AppInfo.createInitialAppInfo(
application, GlobalSyntheticsStrategy.forNonSynthesizing())),
- null,
- NamingLens.getIdentityLens());
+ null);
ExecutorService executor = ThreadUtils.getExecutorService(options);
AndroidAppConsumers compatSink = new AndroidAppConsumers(options);
try {
diff --git a/src/test/java/com/android/tools/r8/utils/Smali.java b/src/test/java/com/android/tools/r8/utils/Smali.java
index ebfd956..30274f0 100644
--- a/src/test/java/com/android/tools/r8/utils/Smali.java
+++ b/src/test/java/com/android/tools/r8/utils/Smali.java
@@ -11,7 +11,6 @@
import com.android.tools.r8.graph.AppInfo;
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexApplication;
-import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.synthesis.SyntheticItems.GlobalSyntheticsStrategy;
import com.google.common.collect.ImmutableList;
@@ -117,8 +116,7 @@
AppView.createForD8(
AppInfo.createInitialAppInfo(
dexApp, GlobalSyntheticsStrategy.forNonSynthesizing())),
- null,
- NamingLens.getIdentityLens());
+ null);
writer.write(executor);
return consumer.contents;
} finally {