87d10eb055
* Eliminate well-known symbols in the checker: 2021 edition * Actually update the lib text to say unique symbol, too (this is unneeded with compat code in place, but this makes goto-def make more sense) * Add test showing mismatched symbol constructor type interop * Add more test cases for some other related issues this fixes * Revert computed name change * Style comments
61 lines
1.2 KiB
Plaintext
61 lines
1.2 KiB
Plaintext
=== tests/cases/conformance/es6/destructuring/iterableArrayPattern20.ts ===
|
|
class Bar { x }
|
|
>Bar : Bar
|
|
>x : any
|
|
|
|
class Foo extends Bar { y }
|
|
>Foo : Foo
|
|
>Bar : Bar
|
|
>y : any
|
|
|
|
class FooArrayIterator {
|
|
>FooArrayIterator : FooArrayIterator
|
|
|
|
next() {
|
|
>next : () => { value: Foo[]; done: boolean; }
|
|
|
|
return {
|
|
>{ value: [new Foo], done: false } : { value: Foo[]; done: boolean; }
|
|
|
|
value: [new Foo],
|
|
>value : Foo[]
|
|
>[new Foo] : Foo[]
|
|
>new Foo : Foo
|
|
>Foo : typeof Foo
|
|
|
|
done: false
|
|
>done : boolean
|
|
>false : false
|
|
|
|
};
|
|
}
|
|
|
|
[Symbol.iterator]() {
|
|
>[Symbol.iterator] : () => this
|
|
>Symbol.iterator : unique symbol
|
|
>Symbol : SymbolConstructor
|
|
>iterator : unique symbol
|
|
|
|
return this;
|
|
>this : this
|
|
}
|
|
}
|
|
|
|
function fun(...[[a = new Foo], b = [new Foo]]: Bar[][]) { }
|
|
>fun : (...[[a], b]: Bar[][]) => void
|
|
>a : Bar
|
|
>new Foo : Foo
|
|
>Foo : typeof Foo
|
|
>b : Bar[]
|
|
>[new Foo] : Foo[]
|
|
>new Foo : Foo
|
|
>Foo : typeof Foo
|
|
|
|
fun(...new FooArrayIterator);
|
|
>fun(...new FooArrayIterator) : void
|
|
>fun : (...[[a], b]: Bar[][]) => void
|
|
>...new FooArrayIterator : Foo[]
|
|
>new FooArrayIterator : FooArrayIterator
|
|
>FooArrayIterator : typeof FooArrayIterator
|
|
|