Companion
Properties
Where metafactory and altMetafactory both put instantiatedMethodType — the one bootstrap argument describing the impl handle rather than the interface. See visitInvokeDynamicInsn.
The JVM's two initializer methods: never a call bridgeable takes.
Cache for inaccessible — keyed by internal name, one class-file read per class.
Functions
Whether a call site always goes through an AccessBridge indy: a widenable owner, and neither an initializer nor an INVOKESPECIAL — those are bridgeSpecial's.
type as a dynamic constant resolved through AccessBridge.classConstant.
True if owner's constructor desc is not public. Read like inaccessible, with the same default — anything unreadable counts as public — but not cached: unlike a type, which every descriptor names again, it is asked only about the constructors a snippet calls, and those are few and seldom repeated.
Erase one type descriptor to Object when a snippet cannot name its class. An array erases its ELEMENT type and keeps its dimensions: the real array is assignable to [Ljava/lang/Object; by covariance and it is still an array, so arraylength/aaload keep verifying — collapsing to a bare Object would not. Primitives and accessible types pass through untouched, so the common path keeps its precise types — and with them the JIT's ability to inline the call site.
A field handle's desc is a FIELD descriptor, which eraseMethodDesc would read off the end of. Unreachable today.
True if internalName is NOT a public class — meaning a snippet cannot even NAME it, let alone touch its members: a snippet always sits in a different runtime package (different loader AND different package name), so package-private is out of reach by definition.