Skip to content

Commit 616e6e6

Browse files
authored
Move symbol instance type to es5 to follow PropertyKey (microsoft#23864)
* Move symbol instance type to es5 * Accept baseline changes from moving Symbol
1 parent 41182c2 commit 616e6e6

File tree

238 files changed

+719
-705
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

238 files changed

+719
-705
lines changed

src/lib/es2015.symbol.d.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,3 @@
1-
interface Symbol {
2-
/** Returns a string representation of an object. */
3-
toString(): string;
4-
5-
/** Returns the primitive value of the specified object. */
6-
valueOf(): symbol;
7-
}
8-
91
interface SymbolConstructor {
102
/**
113
* A reference to the prototype.

src/lib/es5.d.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,14 @@ declare function escape(string: string): string;
7474
*/
7575
declare function unescape(string: string): string;
7676

77+
interface Symbol {
78+
/** Returns a string representation of an object. */
79+
toString(): string;
80+
81+
/** Returns the primitive value of the specified object. */
82+
valueOf(): symbol;
83+
}
84+
7785
declare type PropertyKey = string | number | symbol;
7886

7987
interface PropertyDescriptor {

tests/baselines/reference/ES5For-ofTypeCheck10.errors.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck10.ts(9,6): error TS2304: Cannot find name 'Symbol'.
1+
tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck10.ts(9,6): error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
22
tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck10.ts(14,15): error TS2569: Type 'StringIterator' is not an array type or a string type. Use compiler option '--downlevelIteration' to allow iterating of iterators.
33

44

@@ -13,7 +13,7 @@ tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck10.ts(14,1
1313
}
1414
[Symbol.iterator]() {
1515
~~~~~~
16-
!!! error TS2304: Cannot find name 'Symbol'.
16+
!!! error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
1717
return this;
1818
}
1919
}

tests/baselines/reference/ES5SymbolProperty1.symbols

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ interface SymbolConstructor {
66
>foo : Symbol(SymbolConstructor.foo, Decl(ES5SymbolProperty1.ts, 0, 29))
77
}
88
var Symbol: SymbolConstructor;
9-
>Symbol : Symbol(Symbol, Decl(ES5SymbolProperty1.ts, 3, 3))
9+
>Symbol : Symbol(Symbol, Decl(lib.d.ts, --, --), Decl(ES5SymbolProperty1.ts, 3, 3))
1010
>SymbolConstructor : Symbol(SymbolConstructor, Decl(ES5SymbolProperty1.ts, 0, 0))
1111

1212
var obj = {
@@ -15,13 +15,13 @@ var obj = {
1515
[Symbol.foo]: 0
1616
>[Symbol.foo] : Symbol([Symbol.foo], Decl(ES5SymbolProperty1.ts, 5, 11))
1717
>Symbol.foo : Symbol(SymbolConstructor.foo, Decl(ES5SymbolProperty1.ts, 0, 29))
18-
>Symbol : Symbol(Symbol, Decl(ES5SymbolProperty1.ts, 3, 3))
18+
>Symbol : Symbol(Symbol, Decl(lib.d.ts, --, --), Decl(ES5SymbolProperty1.ts, 3, 3))
1919
>foo : Symbol(SymbolConstructor.foo, Decl(ES5SymbolProperty1.ts, 0, 29))
2020
}
2121

2222
obj[Symbol.foo];
2323
>obj : Symbol(obj, Decl(ES5SymbolProperty1.ts, 5, 3))
2424
>Symbol.foo : Symbol(SymbolConstructor.foo, Decl(ES5SymbolProperty1.ts, 0, 29))
25-
>Symbol : Symbol(Symbol, Decl(ES5SymbolProperty1.ts, 3, 3))
25+
>Symbol : Symbol(Symbol, Decl(lib.d.ts, --, --), Decl(ES5SymbolProperty1.ts, 3, 3))
2626
>foo : Symbol(SymbolConstructor.foo, Decl(ES5SymbolProperty1.ts, 0, 29))
2727

tests/baselines/reference/ES5SymbolProperty2.errors.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
tests/cases/conformance/Symbols/ES5SymbolProperty2.ts(5,10): error TS2471: A computed property name of the form 'Symbol.iterator' must be of type 'symbol'.
2-
tests/cases/conformance/Symbols/ES5SymbolProperty2.ts(10,11): error TS2304: Cannot find name 'Symbol'.
2+
tests/cases/conformance/Symbols/ES5SymbolProperty2.ts(10,11): error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
33

44

55
==== tests/cases/conformance/Symbols/ES5SymbolProperty2.ts (2 errors) ====
@@ -16,4 +16,4 @@ tests/cases/conformance/Symbols/ES5SymbolProperty2.ts(10,11): error TS2304: Cann
1616

1717
(new M.C)[Symbol.iterator];
1818
~~~~~~
19-
!!! error TS2304: Cannot find name 'Symbol'.
19+
!!! error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
=== tests/cases/conformance/Symbols/ES5SymbolProperty3.ts ===
22
var Symbol: any;
3-
>Symbol : Symbol(Symbol, Decl(ES5SymbolProperty3.ts, 0, 3))
3+
>Symbol : Symbol(Symbol, Decl(lib.d.ts, --, --), Decl(ES5SymbolProperty3.ts, 0, 3))
44

55
class C {
66
>C : Symbol(C, Decl(ES5SymbolProperty3.ts, 0, 16))
77

88
[Symbol.iterator]() { }
99
>[Symbol.iterator] : Symbol(C[Symbol.iterator], Decl(ES5SymbolProperty3.ts, 2, 9))
10-
>Symbol : Symbol(Symbol, Decl(ES5SymbolProperty3.ts, 0, 3))
10+
>Symbol : Symbol(Symbol, Decl(lib.d.ts, --, --), Decl(ES5SymbolProperty3.ts, 0, 3))
1111
}
1212

1313
(new C)[Symbol.iterator]
1414
>C : Symbol(C, Decl(ES5SymbolProperty3.ts, 0, 16))
15-
>Symbol : Symbol(Symbol, Decl(ES5SymbolProperty3.ts, 0, 3))
15+
>Symbol : Symbol(Symbol, Decl(lib.d.ts, --, --), Decl(ES5SymbolProperty3.ts, 0, 3))
1616

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
=== tests/cases/conformance/Symbols/ES5SymbolProperty4.ts ===
22
var Symbol: { iterator: string };
3-
>Symbol : Symbol(Symbol, Decl(ES5SymbolProperty4.ts, 0, 3))
3+
>Symbol : Symbol(Symbol, Decl(lib.d.ts, --, --), Decl(ES5SymbolProperty4.ts, 0, 3))
44
>iterator : Symbol(iterator, Decl(ES5SymbolProperty4.ts, 0, 13))
55

66
class C {
@@ -9,13 +9,13 @@ class C {
99
[Symbol.iterator]() { }
1010
>[Symbol.iterator] : Symbol(C[Symbol.iterator], Decl(ES5SymbolProperty4.ts, 2, 9))
1111
>Symbol.iterator : Symbol(iterator, Decl(ES5SymbolProperty4.ts, 0, 13))
12-
>Symbol : Symbol(Symbol, Decl(ES5SymbolProperty4.ts, 0, 3))
12+
>Symbol : Symbol(Symbol, Decl(lib.d.ts, --, --), Decl(ES5SymbolProperty4.ts, 0, 3))
1313
>iterator : Symbol(iterator, Decl(ES5SymbolProperty4.ts, 0, 13))
1414
}
1515

1616
(new C)[Symbol.iterator]
1717
>C : Symbol(C, Decl(ES5SymbolProperty4.ts, 0, 33))
1818
>Symbol.iterator : Symbol(iterator, Decl(ES5SymbolProperty4.ts, 0, 13))
19-
>Symbol : Symbol(Symbol, Decl(ES5SymbolProperty4.ts, 0, 3))
19+
>Symbol : Symbol(Symbol, Decl(lib.d.ts, --, --), Decl(ES5SymbolProperty4.ts, 0, 3))
2020
>iterator : Symbol(iterator, Decl(ES5SymbolProperty4.ts, 0, 13))
2121

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
=== tests/cases/conformance/Symbols/ES5SymbolProperty5.ts ===
22
var Symbol: { iterator: symbol };
3-
>Symbol : Symbol(Symbol, Decl(ES5SymbolProperty5.ts, 0, 3))
3+
>Symbol : Symbol(Symbol, Decl(lib.d.ts, --, --), Decl(ES5SymbolProperty5.ts, 0, 3))
44
>iterator : Symbol(iterator, Decl(ES5SymbolProperty5.ts, 0, 13))
55

66
class C {
@@ -9,13 +9,13 @@ class C {
99
[Symbol.iterator]() { }
1010
>[Symbol.iterator] : Symbol(C[Symbol.iterator], Decl(ES5SymbolProperty5.ts, 2, 9))
1111
>Symbol.iterator : Symbol(iterator, Decl(ES5SymbolProperty5.ts, 0, 13))
12-
>Symbol : Symbol(Symbol, Decl(ES5SymbolProperty5.ts, 0, 3))
12+
>Symbol : Symbol(Symbol, Decl(lib.d.ts, --, --), Decl(ES5SymbolProperty5.ts, 0, 3))
1313
>iterator : Symbol(iterator, Decl(ES5SymbolProperty5.ts, 0, 13))
1414
}
1515

1616
(new C)[Symbol.iterator](0) // Should error
1717
>C : Symbol(C, Decl(ES5SymbolProperty5.ts, 0, 33))
1818
>Symbol.iterator : Symbol(iterator, Decl(ES5SymbolProperty5.ts, 0, 13))
19-
>Symbol : Symbol(Symbol, Decl(ES5SymbolProperty5.ts, 0, 3))
19+
>Symbol : Symbol(Symbol, Decl(lib.d.ts, --, --), Decl(ES5SymbolProperty5.ts, 0, 3))
2020
>iterator : Symbol(iterator, Decl(ES5SymbolProperty5.ts, 0, 13))
2121

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
tests/cases/conformance/Symbols/ES5SymbolProperty6.ts(2,6): error TS2304: Cannot find name 'Symbol'.
2-
tests/cases/conformance/Symbols/ES5SymbolProperty6.ts(5,9): error TS2304: Cannot find name 'Symbol'.
1+
tests/cases/conformance/Symbols/ES5SymbolProperty6.ts(2,6): error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
2+
tests/cases/conformance/Symbols/ES5SymbolProperty6.ts(5,9): error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
33

44

55
==== tests/cases/conformance/Symbols/ES5SymbolProperty6.ts (2 errors) ====
66
class C {
77
[Symbol.iterator]() { }
88
~~~~~~
9-
!!! error TS2304: Cannot find name 'Symbol'.
9+
!!! error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
1010
}
1111

1212
(new C)[Symbol.iterator]
1313
~~~~~~
14-
!!! error TS2304: Cannot find name 'Symbol'.
14+
!!! error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
=== tests/cases/conformance/Symbols/ES5SymbolProperty7.ts ===
22
var Symbol: { iterator: any };
3-
>Symbol : Symbol(Symbol, Decl(ES5SymbolProperty7.ts, 0, 3))
3+
>Symbol : Symbol(Symbol, Decl(lib.d.ts, --, --), Decl(ES5SymbolProperty7.ts, 0, 3))
44
>iterator : Symbol(iterator, Decl(ES5SymbolProperty7.ts, 0, 13))
55

66
class C {
@@ -9,13 +9,13 @@ class C {
99
[Symbol.iterator]() { }
1010
>[Symbol.iterator] : Symbol(C[Symbol.iterator], Decl(ES5SymbolProperty7.ts, 2, 9))
1111
>Symbol.iterator : Symbol(iterator, Decl(ES5SymbolProperty7.ts, 0, 13))
12-
>Symbol : Symbol(Symbol, Decl(ES5SymbolProperty7.ts, 0, 3))
12+
>Symbol : Symbol(Symbol, Decl(lib.d.ts, --, --), Decl(ES5SymbolProperty7.ts, 0, 3))
1313
>iterator : Symbol(iterator, Decl(ES5SymbolProperty7.ts, 0, 13))
1414
}
1515

1616
(new C)[Symbol.iterator]
1717
>C : Symbol(C, Decl(ES5SymbolProperty7.ts, 0, 30))
1818
>Symbol.iterator : Symbol(iterator, Decl(ES5SymbolProperty7.ts, 0, 13))
19-
>Symbol : Symbol(Symbol, Decl(ES5SymbolProperty7.ts, 0, 3))
19+
>Symbol : Symbol(Symbol, Decl(lib.d.ts, --, --), Decl(ES5SymbolProperty7.ts, 0, 3))
2020
>iterator : Symbol(iterator, Decl(ES5SymbolProperty7.ts, 0, 13))
2121

0 commit comments

Comments
 (0)