我有一段代码可以在java 7下编译,但不是在java 8下编译.这是一个独立的再现示例(我已经采用了真正的代码来展示这个问题并且删除了所有的实现):
import java.util.Iterator;
class ASTNode<T extends ASTNode> implements Iterable<T> {
  @Override public Iterator<T> iterator() { return null; }
}
class List<T extends ASTNode> extends ASTNode<T> {}
interface Function<F, T> {}
class Iterables {
  public static <F,T> Iterable<T> transform(
      Iterable<F> fromIterable, Function<? super F, ? extends T> function) { return null; }
}
class AstFunctions {
  public static <T extends ASTNode<?>> Function<T, String> prettyPrint() { return null; }
}
public class Main {
  public static void test() {
    List<? …