assertEquals("ClassExposingM", i.m());
assertEquals("live at ClassExposingM", new ClassExposingM().f());
// Confirm that both calling m through SomeInterface and through SomeParentParentParent
// dispatch to the right implementation.
SomeInterface i1 = new SubClassExposingM();
assertEquals("SubClassExposingM", i1.m());
assertEquals("SubClassExposingM",
SomeParentParentParent.callSomeParentParentParentM(new SubClassExposingM()));
assertEquals("SomeParentParentParent",
SomeParentParentParent.callSomeParentParentParentM(new SomeParentParentParent()));
assertEquals("SomeParentParentParent",
SomeParentParentParent.callSomeParentParentParentM(new SomePackageConfusedParent()));