Fixed
Status Update
Comments
mk...@google.com <mk...@google.com>
mk...@google.com <mk...@google.com> #2
Just for context: ViewModel has a final package-private method named clear. That method is unrelated to any method defined in another package in a subclass called clear
. Have we accidentally messed that up. We would not be the first ones to do so. In fact any sub class of ViewModel that has a clear
method will not work on Dalvik:
ey...@gmail.com <ey...@gmail.com> #3
The override of package private final methods was something I looked at earlier and we should handle the case correctly - except for the case where we have -allowaccessmodification. That seem to not be the case for this example so I will take a closer look.
ey...@gmail.com <ey...@gmail.com> #4
Project: r8
Branch: master
commit 55fcc18a27c5ed93acf6fe9db359a28ed5bbeab2
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Fri Oct 23 10:45:51 2020
Test for accessibility of override before caching in seen set
Bug: 171369796
Change-Id: Ic284dd68f1293eec0b3590349d7c6bfec562c7d0
M src/main/java/com/android/tools/r8/shaking/Enqueuer.java
M src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateFinalOverrideInterfaceTest.java
https://r8-review.googlesource.com/55261
Branch: master
commit 55fcc18a27c5ed93acf6fe9db359a28ed5bbeab2
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Fri Oct 23 10:45:51 2020
Test for accessibility of override before caching in seen set
Bug: 171369796
Change-Id: Ic284dd68f1293eec0b3590349d7c6bfec562c7d0
M src/main/java/com/android/tools/r8/shaking/Enqueuer.java
M src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateFinalOverrideInterfaceTest.java
ze...@google.com <ze...@google.com> #5
Project: r8
Branch: master
commit 32646725161fc43ba803e46e0e8cc0ce9bd61b6e
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Fri Oct 23 10:45:30 2020
Add test for package private final override with interface error
Bug: 171369796
Change-Id: I5ecddb4173e3eceda57a489f0ba9f2f5dce5d3fc
A src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateFinalOverrideInterfaceTest.java
https://r8-review.googlesource.com/55260
Branch: master
commit 32646725161fc43ba803e46e0e8cc0ce9bd61b6e
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Fri Oct 23 10:45:30 2020
Add test for package private final override with interface error
Bug: 171369796
Change-Id: I5ecddb4173e3eceda57a489f0ba9f2f5dce5d3fc
A src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateFinalOverrideInterfaceTest.java
ey...@gmail.com <ey...@gmail.com> #6
Project: r8
Branch: 2.1
commit 85253f5168006f580f091f4850e8e9bf23e379fd
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Fri Oct 23 11:46:33 2020
Test for accessibility of override before caching in seen set
Bug: 171369796
Change-Id: Ic284dd68f1293eec0b3590349d7c6bfec562c7d0
M src/main/java/com/android/tools/r8/shaking/Enqueuer.java
M src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateFinalOverrideInterfaceTest.java
https://r8-review.googlesource.com/55325
Branch: 2.1
commit 85253f5168006f580f091f4850e8e9bf23e379fd
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Fri Oct 23 11:46:33 2020
Test for accessibility of override before caching in seen set
Bug: 171369796
Change-Id: Ic284dd68f1293eec0b3590349d7c6bfec562c7d0
M src/main/java/com/android/tools/r8/shaking/Enqueuer.java
M src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateFinalOverrideInterfaceTest.java
mk...@google.com <mk...@google.com> #7
Project: r8
Branch: 2.1
commit dd62fec5fdde149c8b8c72ca919e6ac59369f9db
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Fri Oct 23 11:46:12 2020
Add test for package private final override with interface error
Bug: 171369796
Change-Id: I5ecddb4173e3eceda57a489f0ba9f2f5dce5d3fc
A src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateFinalOverrideInterfaceTest.java
https://r8-review.googlesource.com/55324
Branch: 2.1
commit dd62fec5fdde149c8b8c72ca919e6ac59369f9db
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Fri Oct 23 11:46:12 2020
Add test for package private final override with interface error
Bug: 171369796
Change-Id: I5ecddb4173e3eceda57a489f0ba9f2f5dce5d3fc
A src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateFinalOverrideInterfaceTest.java
mk...@google.com <mk...@google.com> #8
Project: r8
Branch: 2.1
commit 252de63548eedfd025840a3fa7eb1af601657c59
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Fri Oct 23 11:46:59 2020
Version 2.1.76
Cherry-pick: Add test for package private final override with
interface error
CL:https://r8-review.googlesource.com/55260
Cherry-pick: Test for accessibility of override before caching in seen
set
CL:https://r8-review.googlesource.com/c/r8/+/55261
Bug: 171369796
Change-Id: I27e62a04ee8284b6256e6cc4d24f5794b9365287
M src/main/java/com/android/tools/r8/Version.java
https://r8-review.googlesource.com/55304
Branch: 2.1
commit 252de63548eedfd025840a3fa7eb1af601657c59
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Fri Oct 23 11:46:59 2020
Version 2.1.76
Cherry-pick: Add test for package private final override with
interface error
CL:
Cherry-pick: Test for accessibility of override before caching in seen
set
CL:
Bug: 171369796
Change-Id: I27e62a04ee8284b6256e6cc4d24f5794b9365287
M src/main/java/com/android/tools/r8/Version.java
ap...@google.com <ap...@google.com> #9
Project: r8
Branch: 2.2
commit f7c7b77b042f5ac6dcd503b0b35c47d85e314c24
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Fri Oct 23 11:33:14 2020
Add test for package private final override with interface error
Bug: 171369796
Change-Id: I5ecddb4173e3eceda57a489f0ba9f2f5dce5d3fc
A src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateFinalOverrideInterfaceTest.java
https://r8-review.googlesource.com/55323
Branch: 2.2
commit f7c7b77b042f5ac6dcd503b0b35c47d85e314c24
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Fri Oct 23 11:33:14 2020
Add test for package private final override with interface error
Bug: 171369796
Change-Id: I5ecddb4173e3eceda57a489f0ba9f2f5dce5d3fc
A src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateFinalOverrideInterfaceTest.java
sg...@google.com <sg...@google.com> #10
Project: r8
Branch: 2.2
commit db2132c30daadd5be66bde9c665d3e132e659a43
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Fri Oct 23 11:39:59 2020
Version 2.2.33
Cherry-pick: Add test for package private final override with
interface error
CL:https://r8-review.googlesource.com/55260
Cherry-pick: Test for accessibility of override before caching in seen
set
CL:https://r8-review.googlesource.com/c/r8/+/55261
Bug: 171369796
Change-Id: Ia703d6c6b379d9365f110464ad5f5c0f9b8badfe
M src/main/java/com/android/tools/r8/Version.java
https://r8-review.googlesource.com/55303
Branch: 2.2
commit db2132c30daadd5be66bde9c665d3e132e659a43
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Fri Oct 23 11:39:59 2020
Version 2.2.33
Cherry-pick: Add test for package private final override with
interface error
CL:
Cherry-pick: Test for accessibility of override before caching in seen
set
CL:
Bug: 171369796
Change-Id: Ia703d6c6b379d9365f110464ad5f5c0f9b8badfe
M src/main/java/com/android/tools/r8/Version.java
ap...@google.com <ap...@google.com> #11
Project: r8
Branch: 2.2
commit 915de223437a556e57e8ca8bb449f45e8f22e78c
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Fri Oct 23 11:34:03 2020
Test for accessibility of override before caching in seen set
Bug: 171369796
Change-Id: Ic284dd68f1293eec0b3590349d7c6bfec562c7d0
M src/main/java/com/android/tools/r8/shaking/Enqueuer.java
M src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateFinalOverrideInterfaceTest.java
https://r8-review.googlesource.com/55302
Branch: 2.2
commit 915de223437a556e57e8ca8bb449f45e8f22e78c
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Fri Oct 23 11:34:03 2020
Test for accessibility of override before caching in seen set
Bug: 171369796
Change-Id: Ic284dd68f1293eec0b3590349d7c6bfec562c7d0
M src/main/java/com/android/tools/r8/shaking/Enqueuer.java
M src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateFinalOverrideInterfaceTest.java
ap...@google.com <ap...@google.com> #12
Project: r8
Branch: 2.1
commit 85253f5168006f580f091f4850e8e9bf23e379fd
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Fri Oct 23 11:46:33 2020
Test for accessibility of override before caching in seen set
Bug: 171369796
Change-Id: Ic284dd68f1293eec0b3590349d7c6bfec562c7d0
M src/main/java/com/android/tools/r8/shaking/Enqueuer.java
M src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateFinalOverrideInterfaceTest.java
https://r8-review.googlesource.com/55325
Branch: 2.1
commit 85253f5168006f580f091f4850e8e9bf23e379fd
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Fri Oct 23 11:46:33 2020
Test for accessibility of override before caching in seen set
Bug: 171369796
Change-Id: Ic284dd68f1293eec0b3590349d7c6bfec562c7d0
M src/main/java/com/android/tools/r8/shaking/Enqueuer.java
M src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateFinalOverrideInterfaceTest.java
Description
I'm hesitant to say this (in case Jake is reading), but I am using Kodein, which given a Type will check if it is assignable from the types that have bindings defined for them. It uses Class.getGenericSuperclass and Class.getGenericInterfaces to build a list of supertypes to check against.
The particular issues I'm running into is with the Crashlytics class (com.crashlytics.android.Crashlytics). It extends Kit, which is returned by getGenericSuperclass, but it also implements KitGroup. However, calling Class<Crashlytics>.getGenericInterfaces returns Crashlytics. This causes Kodein to go into an infinite loop, and eventually stack overflow. Calling Class<Crashlytics>.getInterfaces returns an empty array.
I don't explicitly reference KitGroup in my code, and it doesn't look like KitGroup is used in any of the paths. If I add a reference to it, or a keep rule for it, then it is correctly returned from getGenericInterfaces and getInterfaces, and Crashlytics is not returned from either.