import java.util.function.Consumer abstract class MyIt1 : Iterator { override fun forEachRemaining(x: Consumer) {} } abstract class MyIt2 : Iterator { override fun forEachRemaining(x: Consumer) {} } abstract class MyIt3 : Iterator { override fun forEachRemaining(x: Consumer?) {} } abstract class MyIt4 : Iterator { override fun forEachRemaining(x: Consumer) {} } abstract class MyIt5 : Iterator { override fun forEachRemaining(x: Consumer) {} } abstract class MyIt6 : Iterator { override fun forEachRemaining(x: Consumer) {} } abstract class MyIt7 : Iterator { override fun forEachRemaining(x: Consumer) {} } fun foo(x: Iterator, y: Iterator) { x.forEachRemaining(null) x.forEachRemaining { it -> it.length } x.forEachRemaining { it -> it?.length } y.forEachRemaining { it -> it.length } y.forEachRemaining { it -> it?.length } }