if (typeImplements(type2, info2, type1)) { return type1; if (typeImplements(type1, info1, type2)) { return type2; if (typeImplements(type1, info1, type2)) { return type2; } else {
if (typeImplements(itfs[i], typeInfo(itfs[i]), itf)) { return true;
if (typeImplements(type2, info2, type1)) { return type1; if (typeImplements(type1, info1, type2)) { return type2; if (typeImplements(type1, info1, type2)) { return type2; } else {
if (typeImplements(itfs[i], typeInfo(itfs[i]), itf)) { return true;