package p;
class Test<T extends Runnable & M3> {
/**
* @param m2
*/
public static void foo(M2 m2) {
m2.m();
}
// Invoke "Introduce Indirection" on 'm2.m()'
void h(M2 m2) {
Test.foo(m2);
}
void f(T t) {
Test.foo(t);
}
}
interface M {
void m();
}
interface M2 extends M {
void m();
}
interface M3 extends M2 {
}