From 0758700f7d83554d1addb46c059713342c123e95 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Wed, 25 Jul 2018 12:43:10 -0700 Subject: [PATCH] Accept new baselines --- .../genericRestParameters1.errors.txt | 21 +++++++++++- .../reference/genericRestParameters1.js | 19 +++++++++++ .../reference/genericRestParameters1.symbols | 29 +++++++++++++++++ .../reference/genericRestParameters1.types | 32 +++++++++++++++++++ 4 files changed, 100 insertions(+), 1 deletion(-) diff --git a/tests/baselines/reference/genericRestParameters1.errors.txt b/tests/baselines/reference/genericRestParameters1.errors.txt index c9234260714..2f314387424 100644 --- a/tests/baselines/reference/genericRestParameters1.errors.txt +++ b/tests/baselines/reference/genericRestParameters1.errors.txt @@ -1,8 +1,11 @@ tests/cases/conformance/types/rest/genericRestParameters1.ts(22,1): error TS2556: Expected 3 arguments, but got 1 or more. tests/cases/conformance/types/rest/genericRestParameters1.ts(31,1): error TS2556: Expected 3 arguments, but got 1 or more. +tests/cases/conformance/types/rest/genericRestParameters1.ts(166,1): error TS2322: Type '(a: never) => void' is not assignable to type '(...args: any[]) => void'. + Types of parameters 'a' and 'args' are incompatible. + Type 'any' is not assignable to type 'never'. -==== tests/cases/conformance/types/rest/genericRestParameters1.ts (2 errors) ==== +==== tests/cases/conformance/types/rest/genericRestParameters1.ts (3 errors) ==== declare let f1: (...x: [number, string, boolean]) => void; declare let f2: (x0: number, x1: string, x2: boolean) => void; @@ -161,4 +164,20 @@ tests/cases/conformance/types/rest/genericRestParameters1.ts(31,1): error TS2556 events.emit('jump', 20, 'up'); events.emit('stop', 'Bye!'); events.emit('done'); + + // Repro from #25871 + + declare var ff1: (... args: any[]) => void; + + declare var ff2: () => void; + declare var ff3: (...args: []) => void; + declare var ff4: (a: never) => void; + + ff1 = ff2; + ff1 = ff3; + ff1 = ff4; // Error + ~~~ +!!! error TS2322: Type '(a: never) => void' is not assignable to type '(...args: any[]) => void'. +!!! error TS2322: Types of parameters 'a' and 'args' are incompatible. +!!! error TS2322: Type 'any' is not assignable to type 'never'. \ No newline at end of file diff --git a/tests/baselines/reference/genericRestParameters1.js b/tests/baselines/reference/genericRestParameters1.js index 89d92facba6..d41565e4c6a 100644 --- a/tests/baselines/reference/genericRestParameters1.js +++ b/tests/baselines/reference/genericRestParameters1.js @@ -153,6 +153,18 @@ events.emit('move', 10, 'left'); events.emit('jump', 20, 'up'); events.emit('stop', 'Bye!'); events.emit('done'); + +// Repro from #25871 + +declare var ff1: (... args: any[]) => void; + +declare var ff2: () => void; +declare var ff3: (...args: []) => void; +declare var ff4: (a: never) => void; + +ff1 = ff2; +ff1 = ff3; +ff1 = ff4; // Error //// [genericRestParameters1.js] @@ -256,6 +268,9 @@ events.emit('move', 10, 'left'); events.emit('jump', 20, 'up'); events.emit('stop', 'Bye!'); events.emit('done'); +ff1 = ff2; +ff1 = ff3; +ff1 = ff4; // Error //// [genericRestParameters1.d.ts] @@ -332,3 +347,7 @@ declare type EventType = { emit(e: K, ...payload: T[K] extends any[] ? T[K] : [T[K]]): void; }; declare var events: EventType; +declare var ff1: (...args: any[]) => void; +declare var ff2: () => void; +declare var ff3: (...args: []) => void; +declare var ff4: (a: never) => void; diff --git a/tests/baselines/reference/genericRestParameters1.symbols b/tests/baselines/reference/genericRestParameters1.symbols index d56774eacae..87ddbfcf6fe 100644 --- a/tests/baselines/reference/genericRestParameters1.symbols +++ b/tests/baselines/reference/genericRestParameters1.symbols @@ -622,3 +622,32 @@ events.emit('done'); >events : Symbol(events, Decl(genericRestParameters1.ts, 149, 11)) >emit : Symbol(emit, Decl(genericRestParameters1.ts, 145, 21)) +// Repro from #25871 + +declare var ff1: (... args: any[]) => void; +>ff1 : Symbol(ff1, Decl(genericRestParameters1.ts, 157, 11)) +>args : Symbol(args, Decl(genericRestParameters1.ts, 157, 18)) + +declare var ff2: () => void; +>ff2 : Symbol(ff2, Decl(genericRestParameters1.ts, 159, 11)) + +declare var ff3: (...args: []) => void; +>ff3 : Symbol(ff3, Decl(genericRestParameters1.ts, 160, 11)) +>args : Symbol(args, Decl(genericRestParameters1.ts, 160, 18)) + +declare var ff4: (a: never) => void; +>ff4 : Symbol(ff4, Decl(genericRestParameters1.ts, 161, 11)) +>a : Symbol(a, Decl(genericRestParameters1.ts, 161, 18)) + +ff1 = ff2; +>ff1 : Symbol(ff1, Decl(genericRestParameters1.ts, 157, 11)) +>ff2 : Symbol(ff2, Decl(genericRestParameters1.ts, 159, 11)) + +ff1 = ff3; +>ff1 : Symbol(ff1, Decl(genericRestParameters1.ts, 157, 11)) +>ff3 : Symbol(ff3, Decl(genericRestParameters1.ts, 160, 11)) + +ff1 = ff4; // Error +>ff1 : Symbol(ff1, Decl(genericRestParameters1.ts, 157, 11)) +>ff4 : Symbol(ff4, Decl(genericRestParameters1.ts, 161, 11)) + diff --git a/tests/baselines/reference/genericRestParameters1.types b/tests/baselines/reference/genericRestParameters1.types index 7fc8adefc97..0ec3daaa2f9 100644 --- a/tests/baselines/reference/genericRestParameters1.types +++ b/tests/baselines/reference/genericRestParameters1.types @@ -849,3 +849,35 @@ events.emit('done'); >emit : (e: K, ...payload: Record1[K] extends any[] ? Record1[K] : [Record1[K]]) => void >'done' : "done" +// Repro from #25871 + +declare var ff1: (... args: any[]) => void; +>ff1 : (...args: any[]) => void +>args : any[] + +declare var ff2: () => void; +>ff2 : () => void + +declare var ff3: (...args: []) => void; +>ff3 : () => void +>args : [] + +declare var ff4: (a: never) => void; +>ff4 : (a: never) => void +>a : never + +ff1 = ff2; +>ff1 = ff2 : () => void +>ff1 : (...args: any[]) => void +>ff2 : () => void + +ff1 = ff3; +>ff1 = ff3 : () => void +>ff1 : (...args: any[]) => void +>ff3 : () => void + +ff1 = ff4; // Error +>ff1 = ff4 : (a: never) => void +>ff1 : (...args: any[]) => void +>ff4 : (a: never) => void +