Merge "Centralize kotlin package name and prevent relocate"
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/CodeRewriter.java b/src/main/java/com/android/tools/r8/ir/optimize/CodeRewriter.java
index 40a7692..0349327 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/CodeRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/CodeRewriter.java
@@ -93,6 +93,7 @@
import com.android.tools.r8.ir.optimize.Inliner.ConstraintWithTarget;
import com.android.tools.r8.ir.optimize.ReflectionOptimizer.ClassNameComputationInfo;
import com.android.tools.r8.ir.optimize.SwitchUtils.EnumSwitchInfo;
+import com.android.tools.r8.kotlin.Kotlin;
import com.android.tools.r8.shaking.Enqueuer.AppInfoWithLiveness;
import com.android.tools.r8.utils.InternalOptions;
import com.android.tools.r8.utils.InternalOutputMode;
@@ -1430,7 +1431,7 @@
Wrapper<DexMethod> methodWrap = wrapper.wrap(invokedMethod);
if (methodWrap.equals(throwParamIsNullException)
|| (methodWrap.equals(checkParameterIsNotNull) && instr.inValues().get(0).equals(value))) {
- if (invokedMethod.getHolder().getPackageDescriptor().startsWith("kotlin")) {
+ if (invokedMethod.getHolder().getPackageDescriptor().startsWith(Kotlin.NAME)) {
return true;
}
}
diff --git a/src/main/java/com/android/tools/r8/kotlin/Kotlin.java b/src/main/java/com/android/tools/r8/kotlin/Kotlin.java
index fb6ef33..0a85f89 100644
--- a/src/main/java/com/android/tools/r8/kotlin/Kotlin.java
+++ b/src/main/java/com/android/tools/r8/kotlin/Kotlin.java
@@ -16,7 +16,11 @@
/** Class provides basic information about symbols related to Kotlin support. */
public final class Kotlin {
- // Simply "Lkotlin/", but to avoid being renamed by Shadow.relocate
+
+ // Simply "kotlin", but to avoid being renamed by Shadow.relocate in build.gradle.
+ public static final String NAME = String.join("", ImmutableList.of("k", "o", "t", "l", "i", "n"));
+
+ // Simply "Lkotlin/", but to avoid being renamed by Shadow.relocate in build.gradle.
private static final String KOTLIN =
String.join("", ImmutableList.of("L", "k", "o", "t", "l", "i", "n", "/"));