[code-reflection] RFR: Enable pattern matching for JavaType hierarchy

Paul Sandoz psandoz at openjdk.org
Fri Apr 26 19:40:56 UTC 2024


On Fri, 26 Apr 2024 17:50:43 GMT, Maurizio Cimadamore <mcimadamore at openjdk.org> wrote:

> The `JavaType` hierarchy has now several types under it:
> 
> * `ClassType`
> * `ArrayType`
> * `PrimitiveType`
> * `TypeVarRef`
> * `WildcardType`
> 
> All these types are `public`, except `PrimitiveType`. This limits applicability of pattern matching.
> 
> In addition, `JavaType` defines a bunch of predicates:
> 
> * `isClass()`
> * `isArray()`
> * `isPrimitive()`
> 
> This set of predicates is now incomplete, as it doesn't support all the possible leaves in the type hierarchy.
> 
> Overall, it would be much better to just lean into pattern matching more, and drop the predicates.

For `TypeVarRef` should we collapse the methods `methodOwner` and `classOwner` to `owner()`, or in addition to, and document one should pattern match on the resulting object.

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

PR Review: https://git.openjdk.org/babylon/pull/64#pullrequestreview-2025752603


More information about the babylon-dev mailing list