Enable assertions on bootstrap tests
This also fixes a small bug where constant replacements did not always
get local debug info.
Bug: 122454269
Change-Id: I19f8cf0ff1dc90e4798128ce9b43644d98e4d9b6
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/MemberValuePropagation.java b/src/main/java/com/android/tools/r8/ir/optimize/MemberValuePropagation.java
index e08e9c4..41faa04 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/MemberValuePropagation.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/MemberValuePropagation.java
@@ -95,15 +95,11 @@
private static ConstNumber createConstNumberReplacement(
IRCode code, long constant, TypeLatticeElement typeLattice, DebugLocalInfo debugLocalInfo) {
- ConstNumber replacement;
- if (typeLattice.isReference()) {
- assert constant == 0;
- replacement = code.createConstNull();
- } else {
- Value returnedValue = code.createValue(typeLattice, debugLocalInfo);
- replacement = new ConstNumber(returnedValue, constant);
- }
- return replacement;
+ assert !typeLattice.isReference() || constant == 0;
+ Value returnedValue =
+ code.createValue(
+ typeLattice.isReference() ? TypeLatticeElement.NULL : typeLattice, debugLocalInfo);
+ return new ConstNumber(returnedValue, constant);
}
private void setValueRangeFromProguardRule(ProguardMemberRule rule, Value value) {
diff --git a/src/test/java/com/android/tools/r8/ExternalR8TestBuilder.java b/src/test/java/com/android/tools/r8/ExternalR8TestBuilder.java
index 3b5ddd8..e9d85be 100644
--- a/src/test/java/com/android/tools/r8/ExternalR8TestBuilder.java
+++ b/src/test/java/com/android/tools/r8/ExternalR8TestBuilder.java
@@ -76,6 +76,7 @@
Collections.addAll(
command,
getJavaExecutable(),
+ "-ea",
"-cp",
r8jar.toAbsolutePath().toString(),
R8.class.getTypeName(),