Strengthen type of methodCallsOnInstance in class inliner to InvokeMethodWithReceiver
Change-Id: Iefbe2b77827f13cbc074fc809a1bdc6e5a01ef5c
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/ForcedInliningOracle.java b/src/main/java/com/android/tools/r8/ir/optimize/ForcedInliningOracle.java
index ec28d2d..c791772 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/ForcedInliningOracle.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/ForcedInliningOracle.java
@@ -24,12 +24,12 @@
private final AppView<AppInfoWithLiveness> appView;
private final DexEncodedMethod method;
- private final Map<InvokeMethod, Inliner.InliningInfo> invokesToInline;
+ private final Map<? extends InvokeMethod, Inliner.InliningInfo> invokesToInline;
ForcedInliningOracle(
AppView<AppInfoWithLiveness> appView,
DexEncodedMethod method,
- Map<InvokeMethod, Inliner.InliningInfo> invokesToInline) {
+ Map<? extends InvokeMethod, Inliner.InliningInfo> invokesToInline) {
this.appView = appView;
this.method = method;
this.invokesToInline = invokesToInline;
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/Inliner.java b/src/main/java/com/android/tools/r8/ir/optimize/Inliner.java
index 117cf15..1ab2e28 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/Inliner.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/Inliner.java
@@ -811,7 +811,7 @@
public void performForcedInlining(
DexEncodedMethod method,
IRCode code,
- Map<InvokeMethod, InliningInfo> invokesToInline) {
+ Map<? extends InvokeMethod, InliningInfo> invokesToInline) {
ForcedInliningOracle oracle = new ForcedInliningOracle(appView, method, invokesToInline);
performInliningImpl(oracle, oracle, method, code, OptimizationFeedbackIgnore.getInstance());
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java b/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java
index 9bad45e..90c746b 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java
@@ -75,8 +75,8 @@
private DexClass eligibleClassDefinition;
private boolean isDesugaredLambda;
- private final Map<InvokeMethod, InliningInfo> methodCallsOnInstance
- = new IdentityHashMap<>();
+ private final Map<InvokeMethodWithReceiver, InliningInfo> methodCallsOnInstance =
+ new IdentityHashMap<>();
private final Map<InvokeMethod, InliningInfo> extraMethodCalls
= new IdentityHashMap<>();
private final List<Pair<InvokeMethod, Integer>> unusedArguments
@@ -303,9 +303,9 @@
&& root.outValue() == invoke.getReceiver();
if (isCorrespondingConstructorCall) {
InliningInfo inliningInfo =
- isEligibleConstructorCall(user.asInvokeDirect(), singleTarget, defaultOracle);
+ isEligibleConstructorCall(invoke, singleTarget, defaultOracle);
if (inliningInfo != null) {
- methodCallsOnInstance.put(user.asInvokeDirect(), inliningInfo);
+ methodCallsOnInstance.put(invoke, inliningInfo);
continue;
}
}