> Introduce an instance method, `isClassOrInterface`, to `java.lang.Class` and 
> `java.lang.invoke.TypeDescriptor$OfField`.
> 
> `java.lang.constant.ClassDesc` comes with an `isClassOrInterface` method. It 
> turns out that such a check is frequently needed in the use of `Class` 
> objects, usually as `isArray() || isPrimitive()` or `!isArray() && 
> !isPrimitive()`, with 14 occurrences in various reflective code.
> 
> In addition, `Class` can offer a more efficient implementation than two 
> checks: it can perform a single bit pattern check to derive this result, 
> making such an API more feasible.
> 
> ---------
> - [x] I confirm that I make this contribution in accordance with the [OpenJDK 
> Interim AI Policy](https://openjdk.org/legal/ai).

Chen Liang has updated the pull request with a new target base due to a merge 
or a rebase. The incremental webrev excludes the unrelated changes brought in 
by the merge/rebase. The pull request contains five additional commits since 
the last revision:

 - Update usage in Valhalla
 - Merge branch 'master' of https://github.com/openjdk/jdk into 
feature/class-is-class-or-interface-1
 - Simplify code
 - Merge branch 'master' of https://github.com/openjdk/jdk into 
feature/class-is-class-or-interface-1
 - Class.isClassOrInterface

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/32109/files
  - new: https://git.openjdk.org/jdk/pull/32109/files/26af58da..f3f029d4

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=32109&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=32109&range=00-01

  Stats: 211808 lines in 1890 files changed: 198595 ins; 3754 del; 9459 mod
  Patch: https://git.openjdk.org/jdk/pull/32109.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/32109/head:pull/32109

PR: https://git.openjdk.org/jdk/pull/32109

Reply via email to