Reports vararg method calls that use a ternary operator with mixed array and non-array branches.

When compiled, both branches are wrapped in arrays. As a result, the array branch is turned into a two-dimensional array, which may indicate a problem.

The quick-fix wraps the non-array branch in an array to prevent the compiler from doing the conversion.

Example:

    static void bar(boolean flag) {
        Object[] a = {1, 2};
        Object b = "hello";
        foo(flag ? a : b);
    }
    static void foo(Object... obj) {
    }

After the quick-fix:

    static void bar(boolean flag) {
        Object[] a = {1, 2};
        Object b = "hello";
        foo(flag ? a : new Object[]{b});
    }
    static void foo(Object... obj) {
    }

New in 2020.3