[lworld] Integrated: JDK-8247663: [lworld] LambdaMetaFactory should allow an inline value projection type to convert to its reference projection type

Mandy Chung mchung at openjdk.java.net
Wed Jul 8 21:48:28 UTC 2020


On Wed, 1 Jul 2020 17:19:17 GMT, Mandy Chung <mchung at openjdk.org> wrote:

> This patch fixes `LambdaMetaFactory` to allow inline value projection type to convert to its reference projection type.
> 
> `Class::isAssignableFrom` and `Class::asSubclass` are the APIs to determine if a given type can be safely cast to this
> Class.
> -  Class::isAssignableFrom tests if a given type can be converted to this Class via a widening reference conversion.
> - Class::asSubclass tests if a given type can be converted to this Class via a narrowing conversion.
> 
> The current thought is to keep  `Class::isAssignableFrom` and `Class::asSubclass` to respect the class file hierarchy
> and a cast is needed when converting from `V.val` to `V.ref`.   `LambdaMetaFactory` and other frameworks will need to
> extend the type adaptability check to support inline types.  I considered adding `Class::isConvertibleFrom` method but
> we should wait for more use cases proving the need of such convenience method.  This check can be done by calling
> `Class::referenceType` and `Class::valueType`.

This pull request has now been integrated.

Changeset: 83d6a228
Author:    Mandy Chung <mchung at openjdk.org>
URL:       https://git.openjdk.java.net/valhalla/commit/83d6a228
Stats:     299 lines in 7 files changed: 1 ins; 282 del; 16 mod

8247663: [lworld] LambdaMetaFactory should allow an inline value projection type to convert to its reference projection
type

Reviewed-by: rriggs

-------------

PR: https://git.openjdk.java.net/valhalla/pull/102


More information about the valhalla-dev mailing list