Failed

org.eclipse.jdt.core.tests.compiler.regression.GenericsRegressionTest.test443596 - 12 (from org.eclipse.jdt.core.tests.compiler.regression.TestAll)

Failing for the past 10 builds (Since Failed#44 )
Took 1.3 sec.

Error Message

test443596 - Javac found error(s) but Eclipse only found warning(s).
----------- Expected ------------
----------\n
1. WARNING in X.java (at line 4)\n
 public static <T> Predicate<T> and(Predicate<? super T>... arg) { return null; }\n
                                                            ^^^\n
Type safety: Potential heap pollution via varargs parameter arg\n
----------\n

------------ but was ------------
X.java:4: warning: [unchecked] Possible heap pollution from parameterized vararg type Predicate<? super T>\n
    public static <T> Predicate<T> and(Predicate<? super T>... arg) { return null; }\n
                                                               ^\n
  where T is a type-variable:\n
    T extends Object declared in method <T>and(Predicate<? super T>...)\n
X.java:8: error: no suitable method found for and(Predicate<CAP#1>,Predicate<CAP#2>)\n
        public void error(Predicate<?> arg) { and(predicate, in(arg)); } // no compile\n
                                              ^\n
    method X.<T#1>and(Predicate<? super T#1>...) is not applicable\n
      (cannot infer type-variable(s) T#1,T#2\n
        (varargs mismatch; Predicate<CAP#1> cannot be converted to Predicate<? super T#3>))\n
    method X.<T#4>and(Predicate<? super T#4>,Predicate<? super T#4>) is not applicable\n
      (cannot infer type-variable(s) T#4,T#2\n
        (argument mismatch; Predicate<CAP#1> cannot be converted to Predicate<? super T#5>))\n
  where E,T#1,T#2,T#3,T#4,T#5 are type-variables:\n
    E extends Object declared in class FilteredCollection\n
    T#1 extends Object declared in method <T#1>and(Predicate<? super T#1>...)\n
    T#2 extends Object declared in method <T#2>in(Predicate<? extends T#2>)\n
    T#3 extends CAP#1\n
    T#4 extends Object declared in method <T#4>and(Predicate<? super T#4>,Predicate<? super T#4>)\n
    T#5 extends CAP#1\n
  where CAP#1,CAP#2 are fresh type-variables:\n
    CAP#1 extends Object super: E from capture of ? super E\n
    CAP#2 extends Object from capture of ?\n
1 error\n
1 warning\n

--------- Difference is ----------
 expected:<[----------\n
1. WARNING in X.java (at line 4)\n
 public static <T> Predicate<T> and(Predicate<? super T>... arg) { return null; }\n
                                                            ^^^\n
Type safety: Potential heap pollution via varargs parameter arg\n
----------]\n
> but was:<[X.java:4: warning: [unchecked] Possible heap pollution from parameterized vararg type Predicate<? super T>\n
    public static <T> Predicate<T> and(Predicate<? super T>... arg) { return null; }\n
                                                               ^\n
  where T is a type-variable:\n
    T extends Object declared in method <T>and(Predicate<? super T>...)\n
X.java:8: error: no suitable method found for and(Predicate<CAP#1>,Predicate<CAP#2>)\n
        public void error(Predicate<?> arg) { and(predicate, in(arg)); } // no compile\n
                                              ^\n
    method X.<T#1>and(Predicate<? super T#1>...) is not applicable\n
      (cannot infer type-variable(s) T#1,T#2\n
        (varargs mismatch; Predicate<CAP#1> cannot be converted to Predicate<? super T#3>))\n
    method X.<T#4>and(Predicate<? super T#4>,Predicate<? super T#4>) is not applicable\n
      (cannot infer type-variable(s) T#4,T#2\n
        (argument mismatch; Predicate<CAP#1> cannot be converted to Predicate<? super T#5>))\n
  where E,T#1,T#2,T#3,T#4,T#5 are type-variables:\n
    E extends Object declared in class FilteredCollection\n
    T#1 extends Object declared in method <T#1>and(Predicate<? super T#1>...)\n
    T#2 extends Object declared in method <T#2>in(Predicate<? extends T#2>)\n
    T#3 extends CAP#1\n
    T#4 extends Object declared in method <T#4>and(Predicate<? super T#4>,Predicate<? super T#4>)\n
    T#5 extends CAP#1\n
  where CAP#1,CAP#2 are fresh type-variables:\n
    CAP#1 extends Object super: E from capture of ? super E\n
    CAP#2 extends Object from capture of ?\n
1 error\n
1 warning]\n
>

Stacktrace

junit.framework.ComparisonFailure: 
test443596 - Javac found error(s) but Eclipse only found warning(s).
----------- Expected ------------
----------\n
1. WARNING in X.java (at line 4)\n
	public static <T> Predicate<T> and(Predicate<? super T>... arg) { return null; }\n
	                                                           ^^^\n
Type safety: Potential heap pollution via varargs parameter arg\n
----------\n

------------ but was ------------
X.java:4: warning: [unchecked] Possible heap pollution from parameterized vararg type Predicate<? super T>\n
    public static <T> Predicate<T> and(Predicate<? super T>... arg) { return null; }\n
                                                               ^\n
  where T is a type-variable:\n
    T extends Object declared in method <T>and(Predicate<? super T>...)\n
X.java:8: error: no suitable method found for and(Predicate<CAP#1>,Predicate<CAP#2>)\n
        public void error(Predicate<?> arg) { and(predicate, in(arg)); } // no compile\n
                                              ^\n
    method X.<T#1>and(Predicate<? super T#1>...) is not applicable\n
      (cannot infer type-variable(s) T#1,T#2\n
        (varargs mismatch; Predicate<CAP#1> cannot be converted to Predicate<? super T#3>))\n
    method X.<T#4>and(Predicate<? super T#4>,Predicate<? super T#4>) is not applicable\n
      (cannot infer type-variable(s) T#4,T#2\n
        (argument mismatch; Predicate<CAP#1> cannot be converted to Predicate<? super T#5>))\n
  where E,T#1,T#2,T#3,T#4,T#5 are type-variables:\n
    E extends Object declared in class FilteredCollection\n
    T#1 extends Object declared in method <T#1>and(Predicate<? super T#1>...)\n
    T#2 extends Object declared in method <T#2>in(Predicate<? extends T#2>)\n
    T#3 extends CAP#1\n
    T#4 extends Object declared in method <T#4>and(Predicate<? super T#4>,Predicate<? super T#4>)\n
    T#5 extends CAP#1\n
  where CAP#1,CAP#2 are fresh type-variables:\n
    CAP#1 extends Object super: E from capture of ? super E\n
    CAP#2 extends Object from capture of ?\n
1 error\n
1 warning\n

--------- Difference is ----------
 expected:<[----------\n
1. WARNING in X.java (at line 4)\n
	public static <T> Predicate<T> and(Predicate<? super T>... arg) { return null; }\n
	                                                           ^^^\n
Type safety: Potential heap pollution via varargs parameter arg\n
----------]\n
> but was:<[X.java:4: warning: [unchecked] Possible heap pollution from parameterized vararg type Predicate<? super T>\n
    public static <T> Predicate<T> and(Predicate<? super T>... arg) { return null; }\n
                                                               ^\n
  where T is a type-variable:\n
    T extends Object declared in method <T>and(Predicate<? super T>...)\n
X.java:8: error: no suitable method found for and(Predicate<CAP#1>,Predicate<CAP#2>)\n
        public void error(Predicate<?> arg) { and(predicate, in(arg)); } // no compile\n
                                              ^\n
    method X.<T#1>and(Predicate<? super T#1>...) is not applicable\n
      (cannot infer type-variable(s) T#1,T#2\n
        (varargs mismatch; Predicate<CAP#1> cannot be converted to Predicate<? super T#3>))\n
    method X.<T#4>and(Predicate<? super T#4>,Predicate<? super T#4>) is not applicable\n
      (cannot infer type-variable(s) T#4,T#2\n
        (argument mismatch; Predicate<CAP#1> cannot be converted to Predicate<? super T#5>))\n
  where E,T#1,T#2,T#3,T#4,T#5 are type-variables:\n
    E extends Object declared in class FilteredCollection\n
    T#1 extends Object declared in method <T#1>and(Predicate<? super T#1>...)\n
    T#2 extends Object declared in method <T#2>in(Predicate<? extends T#2>)\n
    T#3 extends CAP#1\n
    T#4 extends Object declared in method <T#4>and(Predicate<? super T#4>,Predicate<? super T#4>)\n
    T#5 extends CAP#1\n
  where CAP#1,CAP#2 are fresh type-variables:\n
    CAP#1 extends Object super: E from capture of ? super E\n
    CAP#2 extends Object from capture of ?\n
1 error\n
1 warning]\n
>
	at org.eclipse.jdt.core.tests.compiler.regression.GenericsRegressionTest.test443596(GenericsRegressionTest.java:5186)

Standard Output

org.eclipse.jdt.core.tests.compiler.regression.GenericsRegressionTest#test443596 - 12
X.java [
public final class X {
    static interface Predicate<T> { boolean test(T object); }
    public static <T> Predicate<T> in(Predicate<? extends T> arg) { return null; }
    public static <T> Predicate<T> and(Predicate<? super T>... arg) { return null; }
    public static <T> Predicate<T> and(Predicate<? super T> arg0, Predicate<? super T> arg1) { return null; }
    static class FilteredCollection<E> {
        Predicate<? super E> predicate;
        public void error(Predicate<?> arg) { and(predicate, in(arg)); } // no compile
    }
}

]


Full results sent to /tmp/comptest/run.1573297474160/12_20191109_110435.txt

Standard Error

--- javac err: ---
X.java:4: warning: [unchecked] Possible heap pollution from parameterized vararg type Predicate<? super T>
    public static <T> Predicate<T> and(Predicate<? super T>... arg) { return null; }
                                                               ^
  where T is a type-variable:
    T extends Object declared in method <T>and(Predicate<? super T>...)
X.java:8: error: no suitable method found for and(Predicate<CAP#1>,Predicate<CAP#2>)
        public void error(Predicate<?> arg) { and(predicate, in(arg)); } // no compile
                                              ^
    method X.<T#1>and(Predicate<? super T#1>...) is not applicable
      (cannot infer type-variable(s) T#1,T#2
        (varargs mismatch; Predicate<CAP#1> cannot be converted to Predicate<? super T#3>))
    method X.<T#4>and(Predicate<? super T#4>,Predicate<? super T#4>) is not applicable
      (cannot infer type-variable(s) T#4,T#2
        (argument mismatch; Predicate<CAP#1> cannot be converted to Predicate<? super T#5>))
  where E,T#1,T#2,T#3,T#4,T#5 are type-variables:
    E extends Object declared in class FilteredCollection
    T#1 extends Object declared in method <T#1>and(Predicate<? super T#1>...)
    T#2 extends Object declared in method <T#2>in(Predicate<? extends T#2>)
    T#3 extends CAP#1
    T#4 extends Object declared in method <T#4>and(Predicate<? super T#4>,Predicate<? super T#4>)
    T#5 extends CAP#1
  where CAP#1,CAP#2 are fresh type-variables:
    CAP#1 extends Object super: E from capture of ? super E
    CAP#2 extends Object from capture of ?
1 error
1 warning

----------------------------------------