Skip to content

Commit 9f39a53

Browse files
committed
Make Symbol the apparent type of symbol
1 parent fbeadbc commit 9f39a53

File tree

8 files changed

+67
-1
lines changed

8 files changed

+67
-1
lines changed

src/compiler/checker.ts

+3
Original file line numberDiff line numberDiff line change
@@ -2524,6 +2524,9 @@ module ts {
25242524
else if (type.flags & TypeFlags.Boolean) {
25252525
type = globalBooleanType;
25262526
}
2527+
else if (type.flags & TypeFlags.ESSymbol) {
2528+
type = globalESSymbolType;
2529+
}
25272530
return type;
25282531
}
25292532

tests/baselines/reference/symbolType11.types

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ s || 1;
3030
>s : symbol
3131

3232
({}) || s;
33-
>({}) || s : symbol | {}
33+
>({}) || s : {}
3434
>({}) : {}
3535
>{} : {}
3636
>s : symbol
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
tests/cases/conformance/es6/Symbols/symbolType15.ts(5,1): error TS2322: Type 'Symbol' is not assignable to type 'symbol'.
2+
3+
4+
==== tests/cases/conformance/es6/Symbols/symbolType15.ts (1 errors) ====
5+
var sym: symbol;
6+
var symObj: Symbol;
7+
8+
symObj = sym;
9+
sym = symObj;
10+
~~~
11+
!!! error TS2322: Type 'Symbol' is not assignable to type 'symbol'.
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
//// [symbolType15.ts]
2+
var sym: symbol;
3+
var symObj: Symbol;
4+
5+
symObj = sym;
6+
sym = symObj;
7+
8+
//// [symbolType15.js]
9+
var sym;
10+
var symObj;
11+
symObj = sym;
12+
sym = symObj;
+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
//// [symbolType16.ts]
2+
interface Symbol {
3+
newSymbolProp: number;
4+
}
5+
6+
var sym: symbol;
7+
sym.newSymbolProp;
8+
9+
//// [symbolType16.js]
10+
var sym;
11+
sym.newSymbolProp;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
=== tests/cases/conformance/es6/Symbols/symbolType16.ts ===
2+
interface Symbol {
3+
>Symbol : Symbol
4+
5+
newSymbolProp: number;
6+
>newSymbolProp : number
7+
}
8+
9+
var sym: symbol;
10+
>sym : symbol
11+
12+
sym.newSymbolProp;
13+
>sym.newSymbolProp : number
14+
>sym : symbol
15+
>newSymbolProp : number
16+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
//@target: ES6
2+
var sym: symbol;
3+
var symObj: Symbol;
4+
5+
symObj = sym;
6+
sym = symObj;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
//@target: ES6
2+
interface Symbol {
3+
newSymbolProp: number;
4+
}
5+
6+
var sym: symbol;
7+
sym.newSymbolProp;

0 commit comments

Comments
 (0)