Ok so, invokespecial cannot cross from a super class to a super class of that class, which is nice.


And invokespecial only can call the super class. So this makes sense for compatibility, like if a base class adds a new method in between. Although there is one more case to check.


And as I expected, invokespecial with no middle method instead uses the original desired method. So this means that in the class structure, unless something was overridden it will instead point to the super class.


So this makes things simple. For super classes, unless something was already declared then use that.