There is definitely non-accidental history behind why we cannot just test subtyping here. We allow overriding Objective-C methods that take unaudited pointer arguments (imported as IUOs) with Swift methods that take non-optional arguments. There may be other reasons as well.