//@target: ES6
class Bar { x }
class Foo extends Bar { y }
class FooIterator {
next() {
return {
value: new Foo,
done: false
};
}
[Symbol.iterator]() {
return this;
function fun(...[a, b]: Bar[]) { }
fun(...new FooIterator);