Add new @NoInliningOfDefaultInitializer testing annotation
Change-Id: Ic5807e110d13ecac1fc5b5aa3295149c6bb8a80b
diff --git a/src/test/java/com/android/tools/r8/NoInliningOfDefaultInitializer.java b/src/test/java/com/android/tools/r8/NoInliningOfDefaultInitializer.java
new file mode 100644
index 0000000..6067415
--- /dev/null
+++ b/src/test/java/com/android/tools/r8/NoInliningOfDefaultInitializer.java
@@ -0,0 +1,13 @@
+// Copyright (c) 2023, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+package com.android.tools.r8;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.CLASS)
+@Target({ElementType.TYPE})
+public @interface NoInliningOfDefaultInitializer {}
diff --git a/src/test/java/com/android/tools/r8/R8TestBuilder.java b/src/test/java/com/android/tools/r8/R8TestBuilder.java
index 194d921..c6f1d08 100644
--- a/src/test/java/com/android/tools/r8/R8TestBuilder.java
+++ b/src/test/java/com/android/tools/r8/R8TestBuilder.java
@@ -556,6 +556,14 @@
NoFieldTypeStrengtheningRule.RULE_NAME, NoFieldTypeStrengthening.class);
}
+ public T enableNoInliningOfDefaultInitializerAnnotations() {
+ return addNoInliningOfDefaultInitializerAnnotation()
+ .addInternalKeepRules(
+ "-neverinline @"
+ + NoInliningOfDefaultInitializer.class.getTypeName()
+ + " class * { <init>(); }");
+ }
+
public T enableNoMethodStaticizingAnnotations() {
return addNoMethodStaticizingAnnotation()
.addInternalMatchAnnotationOnMethodRule(
diff --git a/src/test/java/com/android/tools/r8/TestShrinkerBuilder.java b/src/test/java/com/android/tools/r8/TestShrinkerBuilder.java
index 7f96c42..d9e3f91 100644
--- a/src/test/java/com/android/tools/r8/TestShrinkerBuilder.java
+++ b/src/test/java/com/android/tools/r8/TestShrinkerBuilder.java
@@ -520,6 +520,10 @@
return addTestingAnnotation(NoHorizontalClassMerging.class);
}
+ public final T addNoInliningOfDefaultInitializerAnnotation() {
+ return addTestingAnnotation(NoInliningOfDefaultInitializer.class);
+ }
+
public final T addNoMethodStaticizingAnnotation() {
return addTestingAnnotation(NoMethodStaticizing.class);
}