
public class BugReport { 

    public static class FirstClass<T> { 

        public static <E> FirstClass<E> create(E... elements) { 
            return new FirstClass<>(); 
        } 

        public NextClass<T> toNextClass() { 
            return new NextClass<>(); 
        } 
    } 

    public static class NextClass<T> { 

        public NextClass() { 

        } 
    } 

    public interface Transformer<V> { 

        V valueOf(boolean parameter); 
    } 

    public class TestImpl { 

        public <V> NextClass<V> test(Transformer<? extends V> transformer) { 
            return FirstClass.create(transformer.valueOf(true)).toNextClass(); // There should be a compiler error on this line. 
        } 
    } 
} 
