Skip to content

Commit 18311b7

Browse files
committed
Widen SymbolConstructor unique symbol properties
1 parent e29f35a commit 18311b7

11 files changed

+343
-473
lines changed

internal/checker/checker.go

Lines changed: 321 additions & 300 deletions
Large diffs are not rendered by default.

testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.errors.txt

Lines changed: 0 additions & 17 deletions
This file was deleted.

testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.errors.txt.diff

Lines changed: 0 additions & 21 deletions
This file was deleted.

testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,5 @@ interface SymbolConstructor {
2626
readonly observer: unique symbol;
2727
}
2828
declare const obj: {
29-
[x: symbol]: number;
29+
[Symbol.observer]: number;
3030
};

testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.js.diff

Lines changed: 0 additions & 9 deletions
This file was deleted.

testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.types

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,22 @@
33
=== symbolObserverMismatchingPolyfillsWorkTogether.ts ===
44
interface SymbolConstructor {
55
readonly observer: symbol;
6-
>observer : symbol
6+
>observer : unique symbol
77
}
88
interface SymbolConstructor {
99
readonly observer: unique symbol;
10-
>observer : symbol
10+
>observer : unique symbol
1111
}
1212

1313
const obj = {
14-
>obj : { [x: symbol]: number; }
15-
>{ [Symbol.observer]: 0} : { [x: symbol]: number; }
14+
>obj : { [Symbol.observer]: number; }
15+
>{ [Symbol.observer]: 0} : { [Symbol.observer]: number; }
1616

1717
[Symbol.observer]: 0
1818
>[Symbol.observer] : number
19-
>Symbol.observer : symbol
19+
>Symbol.observer : unique symbol
2020
>Symbol : SymbolConstructor
21-
>observer : symbol
21+
>observer : unique symbol
2222
>0 : 0
2323

2424
};

testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.types.diff

Lines changed: 0 additions & 31 deletions
This file was deleted.

testdata/baselines/reference/submodule/conformance/symbolProperty61.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,11 @@ declare global {
5858
readonly obs: symbol;
5959
}
6060
}
61+
declare const observable: typeof Symbol.obs;
6162
export declare class MyObservable<T> {
62-
[x: symbol]: () => this;
6363
private _val;
6464
constructor(_val: T);
6565
subscribe(next: (val: T) => void): void;
66+
[observable](): this;
6667
}
68+
export {};

testdata/baselines/reference/submodule/conformance/symbolProperty61.js.diff

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,4 @@
77
+ _val;
88
constructor(_val) {
99
this._val = _val;
10-
}
11-
@@= skipped -22, +23 lines =@@
12-
readonly obs: symbol;
13-
}
14-
}
15-
-declare const observable: typeof Symbol.obs;
16-
export declare class MyObservable<T> {
17-
+ [x: symbol]: () => this;
18-
private _val;
19-
constructor(_val: T);
20-
subscribe(next: (val: T) => void): void;
21-
- [observable](): this;
22-
}
23-
-export {};
10+
}

testdata/baselines/reference/submodule/conformance/symbolProperty61.types

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,18 @@ declare global {
66

77
interface SymbolConstructor {
88
readonly obs: symbol
9-
>obs : symbol
9+
>obs : unique symbol
1010
}
1111
}
1212

1313
const observable: typeof Symbol.obs = Symbol.obs
14-
>observable : symbol
15-
>Symbol.obs : symbol
14+
>observable : unique symbol
15+
>Symbol.obs : unique symbol
1616
>Symbol : SymbolConstructor
17-
>obs : symbol
18-
>Symbol.obs : symbol
17+
>obs : unique symbol
18+
>Symbol.obs : unique symbol
1919
>Symbol : SymbolConstructor
20-
>obs : symbol
20+
>obs : unique symbol
2121

2222
export class MyObservable<T> {
2323
>MyObservable : MyObservable<T>
@@ -40,7 +40,7 @@ export class MyObservable<T> {
4040

4141
[observable]() {
4242
>[observable] : () => this
43-
>observable : symbol
43+
>observable : unique symbol
4444

4545
return this
4646
>this : this
@@ -52,9 +52,9 @@ type InteropObservable<T> = {
5252

5353
[Symbol.obs]: () => { subscribe(next: (val: T) => void): void }
5454
>[Symbol.obs] : () => { subscribe(next: (val: T) => void): void; }
55-
>Symbol.obs : symbol
55+
>Symbol.obs : unique symbol
5656
>Symbol : SymbolConstructor
57-
>obs : symbol
57+
>obs : unique symbol
5858
>subscribe : (next: (val: T) => void) => void
5959
>next : (val: T) => void
6060
>val : T
@@ -68,9 +68,9 @@ function from<T>(obs: InteropObservable<T>) {
6868
>obs[Symbol.obs]() : { subscribe(next: (val: T) => void): void; }
6969
>obs[Symbol.obs] : () => { subscribe(next: (val: T) => void): void; }
7070
>obs : InteropObservable<T>
71-
>Symbol.obs : symbol
71+
>Symbol.obs : unique symbol
7272
>Symbol : SymbolConstructor
73-
>obs : symbol
73+
>obs : unique symbol
7474
}
7575

7676
from(new MyObservable(42))

0 commit comments

Comments
 (0)