private void checkUnsafeVarargsConversion(Type t, Type s, Warner warn) {
            if (t.tag != ARRAY || isReifiable(t)) return;
            ArrayType from = (ArrayType)t;
            boolean shouldWarn = false;
            switch (s.tag) {
                case ARRAY:
                    ArrayType to = (ArrayType)s;
                    shouldWarn = from.isVarargs() &&
                            !to.isVarargs() &&
                            !isReifiable(from);
                    break;
                case CLASS:
                    shouldWarn = from.isVarargs();
                    break;
            }
            if (shouldWarn) {
                warn.warn(LintCategory.VARARGS);
            }
        }