private static int CompareConversions(Type s, Type t1, Type t2)
{
if (t1 == t2) return 0;
if (s == t1) return 1;
if (s == t2) return -1;
bool t1T2 = IsCompatibleWith(t1, t2);
bool t2T1 = IsCompatibleWith(t2, t1);
if (t1T2 && !t2T1) return 1;
if (t2T1 && !t1T2) return -1;
if (IsSignedIntegralType(t1) && IsUnsignedIntegralType(t2)) return 1;
if (IsSignedIntegralType(t2) && IsUnsignedIntegralType(t1)) return -1;
return 0;
}