[code-reflection] RFR: 8373572: BytecodeGenerator throws UnsupportedOperationException for JavaOp.InvokeOp when invoke kind is SUPER.

Adam Sotona asotona at openjdk.org
Mon Dec 15 17:47:46 UTC 2025


We cannot generate an invokespecial as it will result in a verify error, since the owner is not assignable to generated hidden class.

This patch constructs method handle via lookup.findSpecial using the lookup's class as the specialCaller.
Original lookup is stored in class data of the constructed hidden class.

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

Commit messages:
 - 8373572: BytecodeGenerator throws UnsupportedOperationException for JavaOp.InvokeOp when invoke kind is SUPER.

Changes: https://git.openjdk.org/babylon/pull/752/files
  Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=752&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8373572
  Stats: 57 lines in 2 files changed: 29 ins; 19 del; 9 mod
  Patch: https://git.openjdk.org/babylon/pull/752.diff
  Fetch: git fetch https://git.openjdk.org/babylon.git pull/752/head:pull/752

PR: https://git.openjdk.org/babylon/pull/752


More information about the babylon-dev mailing list