mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Accept new baselines
This commit is contained in:
@@ -2015,6 +2015,7 @@ declare namespace ts {
|
||||
members?: SymbolTable;
|
||||
exports?: SymbolTable;
|
||||
globalExports?: SymbolTable;
|
||||
nameType?: Type;
|
||||
}
|
||||
enum InternalSymbolName {
|
||||
Call = "__call",
|
||||
|
||||
@@ -2015,6 +2015,7 @@ declare namespace ts {
|
||||
members?: SymbolTable;
|
||||
exports?: SymbolTable;
|
||||
globalExports?: SymbolTable;
|
||||
nameType?: Type;
|
||||
}
|
||||
enum InternalSymbolName {
|
||||
Call = "__call",
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
tests/cases/compiler/lateBoundConstraintTypeChecksCorrectly.ts(17,16): error TS2536: Type 'unique symbol' cannot be used to index type 'T'.
|
||||
tests/cases/compiler/lateBoundConstraintTypeChecksCorrectly.ts(18,17): error TS2536: Type 'unique symbol' cannot be used to index type 'T'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/lateBoundConstraintTypeChecksCorrectly.ts (2 errors) ====
|
||||
declare const fooProp: unique symbol;
|
||||
declare const barProp: unique symbol;
|
||||
|
||||
type BothProps = typeof fooProp | typeof barProp;
|
||||
|
||||
export interface Foo<T> {
|
||||
[fooProp]: T;
|
||||
[barProp]: string;
|
||||
}
|
||||
|
||||
function f<T extends Foo<number>>(x: T) {
|
||||
const abc = x[fooProp]; // expected: 'T[typeof fooProp]'
|
||||
|
||||
/**
|
||||
* Expected: no error
|
||||
*/
|
||||
const def: T[typeof fooProp] = x[fooProp];
|
||||
~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2536: Type 'unique symbol' cannot be used to index type 'T'.
|
||||
const def2: T[typeof barProp] = x[barProp];
|
||||
~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2536: Type 'unique symbol' cannot be used to index type 'T'.
|
||||
}
|
||||
|
||||
@@ -15,14 +15,14 @@ a1.a; // number
|
||||
>a : Symbol(a, Decl(objectLiteralNormalization.ts, 1, 11), Decl(objectLiteralNormalization.ts, 1, 21), Decl(objectLiteralNormalization.ts, 1, 39))
|
||||
|
||||
a1.b; // string | undefined
|
||||
>a1.b : Symbol(b, Decl(objectLiteralNormalization.ts, 1, 27), Decl(objectLiteralNormalization.ts, 1, 45))
|
||||
>a1.b : Symbol(b, Decl(objectLiteralNormalization.ts, 1, 45), Decl(objectLiteralNormalization.ts, 1, 27), Decl(objectLiteralNormalization.ts, 1, 45))
|
||||
>a1 : Symbol(a1, Decl(objectLiteralNormalization.ts, 1, 3))
|
||||
>b : Symbol(b, Decl(objectLiteralNormalization.ts, 1, 27), Decl(objectLiteralNormalization.ts, 1, 45))
|
||||
>b : Symbol(b, Decl(objectLiteralNormalization.ts, 1, 45), Decl(objectLiteralNormalization.ts, 1, 27), Decl(objectLiteralNormalization.ts, 1, 45))
|
||||
|
||||
a1.c; // boolean | undefined
|
||||
>a1.c : Symbol(c, Decl(objectLiteralNormalization.ts, 1, 53))
|
||||
>a1.c : Symbol(c, Decl(objectLiteralNormalization.ts, 1, 53), Decl(objectLiteralNormalization.ts, 1, 53))
|
||||
>a1 : Symbol(a1, Decl(objectLiteralNormalization.ts, 1, 3))
|
||||
>c : Symbol(c, Decl(objectLiteralNormalization.ts, 1, 53))
|
||||
>c : Symbol(c, Decl(objectLiteralNormalization.ts, 1, 53), Decl(objectLiteralNormalization.ts, 1, 53))
|
||||
|
||||
a1 = { a: 1 };
|
||||
>a1 : Symbol(a1, Decl(objectLiteralNormalization.ts, 1, 3))
|
||||
@@ -48,14 +48,14 @@ let a2 = [{ a: 1, b: 2 }, { a: "abc" }, {}][0];
|
||||
>a : Symbol(a, Decl(objectLiteralNormalization.ts, 10, 27))
|
||||
|
||||
a2.a; // string | number | undefined
|
||||
>a2.a : Symbol(a, Decl(objectLiteralNormalization.ts, 10, 11), Decl(objectLiteralNormalization.ts, 10, 27))
|
||||
>a2.a : Symbol(a, Decl(objectLiteralNormalization.ts, 10, 11), Decl(objectLiteralNormalization.ts, 10, 27), Decl(objectLiteralNormalization.ts, 10, 27))
|
||||
>a2 : Symbol(a2, Decl(objectLiteralNormalization.ts, 10, 3))
|
||||
>a : Symbol(a, Decl(objectLiteralNormalization.ts, 10, 11), Decl(objectLiteralNormalization.ts, 10, 27))
|
||||
>a : Symbol(a, Decl(objectLiteralNormalization.ts, 10, 11), Decl(objectLiteralNormalization.ts, 10, 27), Decl(objectLiteralNormalization.ts, 10, 27))
|
||||
|
||||
a2.b; // number | undefined
|
||||
>a2.b : Symbol(b, Decl(objectLiteralNormalization.ts, 10, 17))
|
||||
>a2.b : Symbol(b, Decl(objectLiteralNormalization.ts, 10, 17), Decl(objectLiteralNormalization.ts, 1, 45))
|
||||
>a2 : Symbol(a2, Decl(objectLiteralNormalization.ts, 10, 3))
|
||||
>b : Symbol(b, Decl(objectLiteralNormalization.ts, 10, 17))
|
||||
>b : Symbol(b, Decl(objectLiteralNormalization.ts, 10, 17), Decl(objectLiteralNormalization.ts, 1, 45))
|
||||
|
||||
a2 = { a: 10, b: 20 };
|
||||
>a2 : Symbol(a2, Decl(objectLiteralNormalization.ts, 10, 3))
|
||||
@@ -144,32 +144,32 @@ d1.pos;
|
||||
>pos : Symbol(pos, Decl(objectLiteralNormalization.ts, 33, 22), Decl(objectLiteralNormalization.ts, 33, 58))
|
||||
|
||||
d1.pos.x;
|
||||
>d1.pos.x : Symbol(x, Decl(objectLiteralNormalization.ts, 33, 29))
|
||||
>d1.pos.x : Symbol(x, Decl(objectLiteralNormalization.ts, 33, 29), Decl(objectLiteralNormalization.ts, 33, 29))
|
||||
>d1.pos : Symbol(pos, Decl(objectLiteralNormalization.ts, 33, 22), Decl(objectLiteralNormalization.ts, 33, 58))
|
||||
>d1 : Symbol(d1, Decl(objectLiteralNormalization.ts, 33, 3))
|
||||
>pos : Symbol(pos, Decl(objectLiteralNormalization.ts, 33, 22), Decl(objectLiteralNormalization.ts, 33, 58))
|
||||
>x : Symbol(x, Decl(objectLiteralNormalization.ts, 33, 29))
|
||||
>x : Symbol(x, Decl(objectLiteralNormalization.ts, 33, 29), Decl(objectLiteralNormalization.ts, 33, 29))
|
||||
|
||||
d1.pos.y;
|
||||
>d1.pos.y : Symbol(y, Decl(objectLiteralNormalization.ts, 33, 35))
|
||||
>d1.pos.y : Symbol(y, Decl(objectLiteralNormalization.ts, 33, 35), Decl(objectLiteralNormalization.ts, 33, 35))
|
||||
>d1.pos : Symbol(pos, Decl(objectLiteralNormalization.ts, 33, 22), Decl(objectLiteralNormalization.ts, 33, 58))
|
||||
>d1 : Symbol(d1, Decl(objectLiteralNormalization.ts, 33, 3))
|
||||
>pos : Symbol(pos, Decl(objectLiteralNormalization.ts, 33, 22), Decl(objectLiteralNormalization.ts, 33, 58))
|
||||
>y : Symbol(y, Decl(objectLiteralNormalization.ts, 33, 35))
|
||||
>y : Symbol(y, Decl(objectLiteralNormalization.ts, 33, 35), Decl(objectLiteralNormalization.ts, 33, 35))
|
||||
|
||||
d1.pos.a;
|
||||
>d1.pos.a : Symbol(a, Decl(objectLiteralNormalization.ts, 33, 73))
|
||||
>d1.pos.a : Symbol(a, Decl(objectLiteralNormalization.ts, 10, 27), Decl(objectLiteralNormalization.ts, 33, 73))
|
||||
>d1.pos : Symbol(pos, Decl(objectLiteralNormalization.ts, 33, 22), Decl(objectLiteralNormalization.ts, 33, 58))
|
||||
>d1 : Symbol(d1, Decl(objectLiteralNormalization.ts, 33, 3))
|
||||
>pos : Symbol(pos, Decl(objectLiteralNormalization.ts, 33, 22), Decl(objectLiteralNormalization.ts, 33, 58))
|
||||
>a : Symbol(a, Decl(objectLiteralNormalization.ts, 33, 73))
|
||||
>a : Symbol(a, Decl(objectLiteralNormalization.ts, 10, 27), Decl(objectLiteralNormalization.ts, 33, 73))
|
||||
|
||||
d1.pos.b;
|
||||
>d1.pos.b : Symbol(b, Decl(objectLiteralNormalization.ts, 33, 86))
|
||||
>d1.pos.b : Symbol(b, Decl(objectLiteralNormalization.ts, 1, 45), Decl(objectLiteralNormalization.ts, 33, 86))
|
||||
>d1.pos : Symbol(pos, Decl(objectLiteralNormalization.ts, 33, 22), Decl(objectLiteralNormalization.ts, 33, 58))
|
||||
>d1 : Symbol(d1, Decl(objectLiteralNormalization.ts, 33, 3))
|
||||
>pos : Symbol(pos, Decl(objectLiteralNormalization.ts, 33, 22), Decl(objectLiteralNormalization.ts, 33, 58))
|
||||
>b : Symbol(b, Decl(objectLiteralNormalization.ts, 33, 86))
|
||||
>b : Symbol(b, Decl(objectLiteralNormalization.ts, 1, 45), Decl(objectLiteralNormalization.ts, 33, 86))
|
||||
|
||||
declare function f<T>(...items: T[]): T;
|
||||
>f : Symbol(f, Decl(objectLiteralNormalization.ts, 39, 9))
|
||||
|
||||
Reference in New Issue
Block a user