commit | 2130a9bf4963dfce44e99c7cfc3d7640c26db62b | [log] [tgz] |
---|---|---|
author | Christoffer Quist Adamsen <christofferqa@google.com> | Thu Apr 30 07:31:05 2020 +0200 |
committer | Christoffer Quist Adamsen <christofferqa@google.com> | Thu Apr 30 05:31:36 2020 +0000 |
tree | 21cc095c8f3c70fe9df15b026a7d41a70eab296f | |
parent | 9cb3aae5a794e99dda4a06753430197ef75b7307 [diff] |
Disable assertion for invalid annotation test Change-Id: Ibd605d282b65be77ae347c4b8f2a1303f4356618
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingCandidateAnalysis.java b/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingCandidateAnalysis.java index 7363619..5412037 100644 --- a/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingCandidateAnalysis.java +++ b/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingCandidateAnalysis.java
@@ -145,7 +145,8 @@ // Browse annotation values types in search for enum. // Each annotation value is represented by a virtual method. for (DexEncodedMethod method : clazz.virtualMethods()) { - assert method.parameters().isEmpty(); + assert method.parameters().isEmpty() + || appView.options().testing.allowInjectedAnnotationMethods; DexType valueType = method.returnType().toBaseType(appView.dexItemFactory()); if (enumToUnboxCandidates.containsKey(valueType)) { enumUnboxer.reportFailure(valueType, Reason.ANNOTATION);
diff --git a/src/main/java/com/android/tools/r8/utils/InternalOptions.java b/src/main/java/com/android/tools/r8/utils/InternalOptions.java index 34c2a0e..a42ed5d 100644 --- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java +++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -1104,6 +1104,7 @@ public boolean addCallEdgesForLibraryInvokes = false; public boolean allowCheckDiscardedErrors = false; + public boolean allowInjectedAnnotationMethods = false; public boolean allowTypeErrors = !Version.isDevelopmentVersion() || System.getProperty("com.android.tools.r8.allowTypeErrors") != null;
diff --git a/src/test/java/com/android/tools/r8/annotations/AnnotationWithInjectedMethodsTest.java b/src/test/java/com/android/tools/r8/annotations/AnnotationWithInjectedMethodsTest.java index 0142bce..be3ee34 100644 --- a/src/test/java/com/android/tools/r8/annotations/AnnotationWithInjectedMethodsTest.java +++ b/src/test/java/com/android/tools/r8/annotations/AnnotationWithInjectedMethodsTest.java
@@ -53,6 +53,7 @@ .addKeepMainRule(Main.class) .addKeepClassAndMembersRules(AnnotationWithInjectedMethod.class) .addKeepRuntimeVisibleAnnotations() + .addOptionsModification(options -> options.testing.allowInjectedAnnotationMethods = true) .noMinification() .setMinApi(parameters.getApiLevel()) .compile()