=== tests/cases/conformance/es6/destructuring/iterableArrayPattern18.ts ===
class Bar { x }
>Bar : Bar
>x : any

class Foo extends Bar { y }
>Foo : Foo
>Bar : Bar
>y : any

class FooIterator {
>FooIterator : FooIterator

    next() {
>next : () => { value: Foo; done: boolean; }

        return {
>{            value: new Foo,            done: false        } : { value: Foo; done: boolean; }

            value: new Foo,
>value : Foo
>new Foo : Foo
>Foo : typeof Foo

            done: false
>done : boolean
>false : false

        };
    }

    [Symbol.iterator]() {
>[Symbol.iterator] : () => this
>Symbol.iterator : symbol
>Symbol : SymbolConstructor
>iterator : symbol

        return this;
>this : this
    }
}

function fun([a, b]: Bar[]) { }
>fun : ([a, b]: Bar[]) => void
>a : Bar
>b : Bar

fun(new FooIterator);
>fun(new FooIterator) : void
>fun : ([a, b]: Bar[]) => void
>new FooIterator : FooIterator
>FooIterator : typeof FooIterator

