int (ExpectedTypeInfo info1, ExpectedTypeInfo info2) { int kind1 = info1.getKind(); int kind2 = info2.getKind(); if (kind1 == kind2) { if (matchesStrictly(info1.getType(), info2)) return -1; if (matchesStrictly(info2.getType(), info1)) return 1; return 0; } if (kind1 == ExpectedTypeInfo.TYPE_STRICTLY) { return matches(info1.getType(), info2) ? -1 : 0; } if (kind2 == ExpectedTypeInfo.TYPE_STRICTLY) { return matches(info2.getType(), info1) ? 1 : 0; } return 0; }