The code for performing a method check (Resolve.checkRawArgumentsAcceptable) is fairly monolithic. It's the only method check routine used within javac which means there's no way to plug in an alternate method check routine into the current overload resolution infrastructure. Yet, there are situation in which such a capability would b very useful (see structural most specific check implementation as per lambda EDR 6.0).