AccessWideningVisitor
internal class AccessWideningVisitor(mv: MethodVisitor, val declaredHere: (String, String, String) -> Boolean) : MethodVisitor
Properties
Functions
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open fun visitInsnAnnotation(typeRef: Int, typePath: TypePath?, descriptor: String?, visible: Boolean): AnnotationVisitor?
Link copied to clipboard
Link copied to clipboard
open override fun visitInvokeDynamicInsn(name: String, descriptor: String, bsm: Handle, vararg bsmArgs: Any?)
Lambdas (LambdaMetafactory call sites the Kotlin compiler emits). Two things here name a type we erased and must move with it: the captured-argument descriptor, and the impl-method handle — which points at the snippet's OWN synthetic method, whose signature widenAccessClass's visitMethod already erased. instantiatedMethodType describes that handle, so it moves too (INSTANTIATED_TYPE).
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open fun visitLocalVariable(name: String?, descriptor: String?, signature: String?, start: Label?, end: Label?, index: Int)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open fun visitParameterAnnotation(parameter: Int, descriptor: String?, visible: Boolean): AnnotationVisitor?
Link copied to clipboard
Link copied to clipboard
open fun visitTryCatchAnnotation(typeRef: Int, typePath: TypePath?, descriptor: String?, visible: Boolean): AnnotationVisitor?
Link copied to clipboard
Link copied to clipboard
open fun visitTypeAnnotation(typeRef: Int, typePath: TypePath?, descriptor: String?, visible: Boolean): AnnotationVisitor?
Link copied to clipboard
A CHECKCAST to an inaccessible class is itself access-checked, so a cast the Kotlin compiler emitted around a value we just erased would re-introduce the failure the erasure avoids. Widen it to Object — the value already is of that type at runtime; the cast existed only to satisfy the verifier.
Link copied to clipboard