refusal

private fun refusal(m: Method, phase: Patch.Phase): String?

Why m may not be patched, or null. Each entry is on the path EVERY patch of that phase dispatches through, so weaving it breaks patches its installer never wrote — unlike a handler that loops back into its own target, which is the caller's. Keyed on the declaring class, which inheritance cannot route around: a box is INVOKESTATIC, and the wrappers are final and each declares its own accessor. The two names are JLS 5.1.7/5.1.8, so only the wrapper is looked up.