* 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
54 lines
1.3 KiB
Plaintext
54 lines
1.3 KiB
Plaintext
=== tests/cases/conformance/es6/Symbols/symbolProperty40.ts ===
|
|
class C {
|
|
>C : C
|
|
|
|
[Symbol.iterator](x: string): string;
|
|
>[Symbol.iterator] : { (x: string): string; (x: number): number; }
|
|
>Symbol.iterator : unique symbol
|
|
>Symbol : SymbolConstructor
|
|
>iterator : unique symbol
|
|
>x : string
|
|
|
|
[Symbol.iterator](x: number): number;
|
|
>[Symbol.iterator] : { (x: string): string; (x: number): number; }
|
|
>Symbol.iterator : unique symbol
|
|
>Symbol : SymbolConstructor
|
|
>iterator : unique symbol
|
|
>x : number
|
|
|
|
[Symbol.iterator](x: any) {
|
|
>[Symbol.iterator] : { (x: string): string; (x: number): number; }
|
|
>Symbol.iterator : unique symbol
|
|
>Symbol : SymbolConstructor
|
|
>iterator : unique symbol
|
|
>x : any
|
|
|
|
return undefined;
|
|
>undefined : undefined
|
|
}
|
|
}
|
|
|
|
var c = new C;
|
|
>c : C
|
|
>new C : C
|
|
>C : typeof C
|
|
|
|
c[Symbol.iterator]("");
|
|
>c[Symbol.iterator]("") : string
|
|
>c[Symbol.iterator] : { (x: string): string; (x: number): number; }
|
|
>c : C
|
|
>Symbol.iterator : unique symbol
|
|
>Symbol : SymbolConstructor
|
|
>iterator : unique symbol
|
|
>"" : ""
|
|
|
|
c[Symbol.iterator](0);
|
|
>c[Symbol.iterator](0) : number
|
|
>c[Symbol.iterator] : { (x: string): string; (x: number): number; }
|
|
>c : C
|
|
>Symbol.iterator : unique symbol
|
|
>Symbol : SymbolConstructor
|
|
>iterator : unique symbol
|
|
>0 : 0
|
|
|