History log of /external/r8/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
127cf8f5c1c98d408526ee6895fc3911689c9ad2 12-Jul-2017 Mads Ager <ager@google.com> Do not use a subclass in a static field initializer.

That can lead to clinit related deadlocks.

R=gavra@google.com

Change-Id: Id06a8f92191211d11cef951048ce5f43ee194cd4
/external/r8/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java
52c0414fff5db9769a60a3e2880acd8781a88ab1 08-Jun-2017 Denis Vnukov <vnukov@google.com> Removed DexClassPromise and LazyClassFileLoader.

Simplified lazy loading machinery to use resource providers
as the only lazy loading mechanism. No more promises.

BUG=

Change-Id: I7b31bfc460c7f40c195d59a2bbc58667185dcb46
/external/r8/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java
a60f2aa119b2ac6d5128683e6a98fd53334327f6 07-Jun-2017 Denis Vnukov <vnukov@google.com> Refactoring resource and class kinds.

Changing resource kind to represent resource's content
rather than what resource is used for. Currently we only
supprt two resource kinds: DEX file and Java class file.

Moving what used to be a resource kind into a separate enum
ClassKind representing if the class is program, classpath
or library class.

With this change, resources only represent their content as
stream and their kinds, and only are mapped into class kinds
based on the API used to introduce them to AndroidApp.

Interface Resource and class InternalResource are also merged
into one class Resource since after we made getClassDescriptors()
part of public API, there is no 'hidden' resource API.

NOTE: Resource class is also used internally to represent other
file kinds (e.g. proguardMap, etc...), we use `null` kind for
such resources.

BUG=

Change-Id: I97df13f28531d1b3086e2929ffd85fdeb2298e81
/external/r8/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java
eaac9171f57cc8462d549b3ca85e28a9594538a5 06-Jun-2017 Denis Vnukov <vnukov@google.com> Lazy class loading with resource providers.

Extending the current lazy loading implementation to allow API
consumer to pass instances implementing LazyResourceProvider
interface as a source of resources that can be queried lazily
for on-demand class searches.

Only class files can be added this way in this implementation.

This functionality is currently implemented as an *extension*
of regular lazy loading which is based on DexClassPromise and
LazyClassFileLoader, and reuses this implementation a lot.

The advantage of using lazy resource providers is that it does
not require actually having all the resources preloaded up front,
but it comes at cost of minor differences of how errors for
conflicting classes are reported in resource-provider based
and regular scenarios.

Currently all the resources added to D8 via --lib or --classpath
are still loaded via regular lazy loading mechanism, resource
providers are only available for API users.

BUG=

Change-Id: I70cba6f3603bfd1e8e33a168d5fd8a3000a6e762
/external/r8/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java
2da874a28e1a98dc5d2500a554f9143d6309a132 31-May-2017 Stephan Herhut <herhut@google.com> Reland "Insert bridge methods in member rebinding if target is otherwise not visible."

Now supports forwarding to abstract classes and handles library methods correctly.

Bug:
Change-Id: Id2cf3d2bbd422eebfa11f581adc9e01bf1bb6d8b
/external/r8/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java
74f1c6f2254f82fcec7612df782d125e621049b9 30-May-2017 Stephan Herhut <herhut@google.com> Revert "Reland "Insert bridge methods in member rebinding if target is otherwise not visible.""

This reverts commit 080ec2d61f7b055a55802c072e77e99514499b8f.

Change-Id: Iae226f6ee358b19cc8fd3f04ffc3ef6b7915fd06
/external/r8/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java
080ec2d61f7b055a55802c072e77e99514499b8f 30-May-2017 Stephan Herhut <herhut@google.com> Reland "Insert bridge methods in member rebinding if target is otherwise not visible."

Bug:
Change-Id: Icdf351384330ca4781d1dfbd510f1be68c0874f4
/external/r8/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java
7c0b6d87377a9202e3b187a98dc782324b6cf437 30-May-2017 Søren Gjesse <sgjesse@google.com> Revert "Insert bridge methods in member rebinding if target is otherwise not visible."

This reverts commit 380ab678ab1a744c535d9f1106858017ff5c91e4.

Buildbot failure:
com.android.tools.r8.art.dx.r8.Art508_referrer_methodTest > runArt508_referrer_methodTest FAILED

Change-Id: Ia58b3c22a8a56e54c35fd95a5779e34dc02274e9
/external/r8/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java
380ab678ab1a744c535d9f1106858017ff5c91e4 30-May-2017 Stephan Herhut <herhut@google.com> Insert bridge methods in member rebinding if target is otherwise
not visible.

This ensures that in R8, all invokes are dispatched to an actual
definition.

Bug: b/38187737
Change-Id: I824a7109c7393c4caaae5d233e0120ba614027a8
/external/r8/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java
418d1ca139ea11316113beafbb3b3dd3fd5587ab 22-May-2017 Mads Ager <ager@google.com> Initial push.
/external/r8/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java