From c0c3f4aa12924e765e3a9ec70cd139f1b03c3410 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Wed, 28 Feb 2018 06:39:44 -0800 Subject: [PATCH] Accept new baselines --- .../reference/conditionalTypes1.errors.txt | 8 ++++---- tests/baselines/reference/conditionalTypes1.js | 10 +++++----- .../reference/conditionalTypes1.symbols | 10 +++++----- .../reference/conditionalTypes1.types | 18 +++++++++--------- .../baselines/reference/inferTypes1.errors.txt | 6 +++--- tests/baselines/reference/inferTypes1.js | 6 +++--- tests/baselines/reference/inferTypes1.symbols | 6 +++--- tests/baselines/reference/inferTypes1.types | 12 ++++++------ 8 files changed, 38 insertions(+), 38 deletions(-) diff --git a/tests/baselines/reference/conditionalTypes1.errors.txt b/tests/baselines/reference/conditionalTypes1.errors.txt index 72d88b60d64..afc020f663a 100644 --- a/tests/baselines/reference/conditionalTypes1.errors.txt +++ b/tests/baselines/reference/conditionalTypes1.errors.txt @@ -157,7 +157,7 @@ tests/cases/conformance/types/conditional/conditionalTypes1.ts(275,43): error TS type T20 = TypeName void)>; // "string" | "function" type T21 = TypeName; // "string" | "number" | "boolean" | "undefined" | "function" | "object" - type T22 = TypeName; // "string" | "number" | "boolean" | "undefined" | "function" | "object" + type T22 = TypeName; // never type T23 = TypeName<{}>; // "object" type KnockoutObservable = { object: T }; @@ -329,7 +329,7 @@ tests/cases/conformance/types/conditional/conditionalTypes1.ts(275,43): error TS type Q1 = IsString; // false type Q2 = IsString<"abc">; // true type Q3 = IsString; // boolean - type Q4 = IsString; // boolean + type Q4 = IsString; // never type N1 = Not; // true type N2 = Not; // false @@ -357,9 +357,9 @@ tests/cases/conformance/types/conditional/conditionalTypes1.ts(275,43): error TS type T40 = never extends never ? true : false; // true type T41 = number extends never ? true : false; // false - type T42 = never extends number ? true : false; // boolean + type T42 = never extends number ? true : false; // true - type IsNever = T extends never ? true : false; + type IsNever = [T] extends [never] ? true : false; type T50 = IsNever; // true type T51 = IsNever; // false diff --git a/tests/baselines/reference/conditionalTypes1.js b/tests/baselines/reference/conditionalTypes1.js index 780163286b6..d941ba6454b 100644 --- a/tests/baselines/reference/conditionalTypes1.js +++ b/tests/baselines/reference/conditionalTypes1.js @@ -64,7 +64,7 @@ type TypeName = type T20 = TypeName void)>; // "string" | "function" type T21 = TypeName; // "string" | "number" | "boolean" | "undefined" | "function" | "object" -type T22 = TypeName; // "string" | "number" | "boolean" | "undefined" | "function" | "object" +type T22 = TypeName; // never type T23 = TypeName<{}>; // "object" type KnockoutObservable = { object: T }; @@ -172,7 +172,7 @@ type IsString = Extends; type Q1 = IsString; // false type Q2 = IsString<"abc">; // true type Q3 = IsString; // boolean -type Q4 = IsString; // boolean +type Q4 = IsString; // never type N1 = Not; // true type N2 = Not; // false @@ -200,9 +200,9 @@ type O9 = Or; // boolean type T40 = never extends never ? true : false; // true type T41 = number extends never ? true : false; // false -type T42 = never extends number ? true : false; // boolean +type T42 = never extends number ? true : false; // true -type IsNever = T extends never ? true : false; +type IsNever = [T] extends [never] ? true : false; type T50 = IsNever; // true type T51 = IsNever; // false @@ -551,7 +551,7 @@ declare type O9 = Or; declare type T40 = never extends never ? true : false; declare type T41 = number extends never ? true : false; declare type T42 = never extends number ? true : false; -declare type IsNever = T extends never ? true : false; +declare type IsNever = [T] extends [never] ? true : false; declare type T50 = IsNever; declare type T51 = IsNever; declare type T52 = IsNever; diff --git a/tests/baselines/reference/conditionalTypes1.symbols b/tests/baselines/reference/conditionalTypes1.symbols index 8802f25b1a8..5e72d1ebd3c 100644 --- a/tests/baselines/reference/conditionalTypes1.symbols +++ b/tests/baselines/reference/conditionalTypes1.symbols @@ -243,7 +243,7 @@ type T21 = TypeName; // "string" | "number" | "boolean" | "undefined" | "f >T21 : Symbol(T21, Decl(conditionalTypes1.ts, 63, 43)) >TypeName : Symbol(TypeName, Decl(conditionalTypes1.ts, 53, 43)) -type T22 = TypeName; // "string" | "number" | "boolean" | "undefined" | "function" | "object" +type T22 = TypeName; // never >T22 : Symbol(T22, Decl(conditionalTypes1.ts, 64, 25)) >TypeName : Symbol(TypeName, Decl(conditionalTypes1.ts, 53, 43)) @@ -668,7 +668,7 @@ type Q3 = IsString; // boolean >Q3 : Symbol(Q3, Decl(conditionalTypes1.ts, 171, 26)) >IsString : Symbol(IsString, Decl(conditionalTypes1.ts, 166, 63)) -type Q4 = IsString; // boolean +type Q4 = IsString; // never >Q4 : Symbol(Q4, Decl(conditionalTypes1.ts, 172, 24)) >IsString : Symbol(IsString, Decl(conditionalTypes1.ts, 166, 63)) @@ -762,16 +762,16 @@ type T40 = never extends never ? true : false; // true type T41 = number extends never ? true : false; // false >T41 : Symbol(T41, Decl(conditionalTypes1.ts, 199, 46)) -type T42 = never extends number ? true : false; // boolean +type T42 = never extends number ? true : false; // true >T42 : Symbol(T42, Decl(conditionalTypes1.ts, 200, 47)) -type IsNever = T extends never ? true : false; +type IsNever = [T] extends [never] ? true : false; >IsNever : Symbol(IsNever, Decl(conditionalTypes1.ts, 201, 47)) >T : Symbol(T, Decl(conditionalTypes1.ts, 203, 13)) >T : Symbol(T, Decl(conditionalTypes1.ts, 203, 13)) type T50 = IsNever; // true ->T50 : Symbol(T50, Decl(conditionalTypes1.ts, 203, 49)) +>T50 : Symbol(T50, Decl(conditionalTypes1.ts, 203, 53)) >IsNever : Symbol(IsNever, Decl(conditionalTypes1.ts, 201, 47)) type T51 = IsNever; // false diff --git a/tests/baselines/reference/conditionalTypes1.types b/tests/baselines/reference/conditionalTypes1.types index 086ea598ba5..17c4e7ac5e9 100644 --- a/tests/baselines/reference/conditionalTypes1.types +++ b/tests/baselines/reference/conditionalTypes1.types @@ -254,8 +254,8 @@ type T21 = TypeName; // "string" | "number" | "boolean" | "undefined" | "f >T21 : "string" | "number" | "boolean" | "undefined" | "object" | "function" >TypeName : TypeName -type T22 = TypeName; // "string" | "number" | "boolean" | "undefined" | "function" | "object" ->T22 : "string" | "number" | "boolean" | "undefined" | "object" | "function" +type T22 = TypeName; // never +>T22 : never >TypeName : TypeName type T23 = TypeName<{}>; // "object" @@ -741,8 +741,8 @@ type Q3 = IsString; // boolean >Q3 : boolean >IsString : Extends -type Q4 = IsString; // boolean ->Q4 : boolean +type Q4 = IsString; // never +>Q4 : never >IsString : Extends type N1 = Not; // true @@ -865,12 +865,12 @@ type T41 = number extends never ? true : false; // false >true : true >false : false -type T42 = never extends number ? true : false; // boolean ->T42 : boolean +type T42 = never extends number ? true : false; // true +>T42 : true >true : true >false : false -type IsNever = T extends never ? true : false; +type IsNever = [T] extends [never] ? true : false; >IsNever : IsNever >T : T >T : T @@ -1236,7 +1236,7 @@ function f50() { >T : T type Omit = { [P in keyof T]: If, never, P>; }[keyof T]; ->Omit : { [P in keyof T]: (T[P] extends never ? boolean : false) extends false ? P : never; }[keyof T] +>Omit : { [P in keyof T]: (T[P] extends never ? never : false) extends false ? P : never; }[keyof T] >T : T >P : P >T : T @@ -1263,7 +1263,7 @@ function f50() { type A = Omit<{ a: void; b: never; }>; // 'a' >A : "a" ->Omit : { [P in keyof T]: (T[P] extends never ? boolean : false) extends false ? P : never; }[keyof T] +>Omit : { [P in keyof T]: (T[P] extends never ? never : false) extends false ? P : never; }[keyof T] >a : void >b : never diff --git a/tests/baselines/reference/inferTypes1.errors.txt b/tests/baselines/reference/inferTypes1.errors.txt index ba5cfc6be39..b36528f721d 100644 --- a/tests/baselines/reference/inferTypes1.errors.txt +++ b/tests/baselines/reference/inferTypes1.errors.txt @@ -50,7 +50,7 @@ tests/cases/conformance/types/conditional/inferTypes1.ts(134,40): error TS2322: type T13 = ReturnType<(() => T)>; // number[] type T14 = ReturnType; // { a: number, b: string } type T15 = ReturnType; // any - type T16 = ReturnType; // any + type T16 = ReturnType; // never type T17 = ReturnType; // Error ~~~~~~ !!! error TS2344: Type 'string' does not satisfy the constraint '(...args: any[]) => any'. @@ -61,7 +61,7 @@ tests/cases/conformance/types/conditional/inferTypes1.ts(134,40): error TS2322: type U10 = InstanceType; // C type U11 = InstanceType; // any - type U12 = InstanceType; // any + type U12 = InstanceType; // never type U13 = InstanceType; // Error ~~~~~~ !!! error TS2344: Type 'string' does not satisfy the constraint 'new (...args: any[]) => any'. @@ -84,7 +84,7 @@ tests/cases/conformance/types/conditional/inferTypes1.ts(134,40): error TS2322: !!! error TS2344: Type 'Function' does not satisfy the constraint '(x: any) => any'. !!! error TS2344: Type 'Function' provides no match for the signature '(x: any): any'. type T26 = ArgumentType; // any - type T27 = ArgumentType; // any + type T27 = ArgumentType; // never type X1 = T extends { x: infer X, y: infer Y } ? [X, Y] : any; diff --git a/tests/baselines/reference/inferTypes1.js b/tests/baselines/reference/inferTypes1.js index 0aea24ec734..bc53f238997 100644 --- a/tests/baselines/reference/inferTypes1.js +++ b/tests/baselines/reference/inferTypes1.js @@ -28,13 +28,13 @@ type T12 = ReturnType<(() => T)>; // {} type T13 = ReturnType<(() => T)>; // number[] type T14 = ReturnType; // { a: number, b: string } type T15 = ReturnType; // any -type T16 = ReturnType; // any +type T16 = ReturnType; // never type T17 = ReturnType; // Error type T18 = ReturnType; // Error type U10 = InstanceType; // C type U11 = InstanceType; // any -type U12 = InstanceType; // any +type U12 = InstanceType; // never type U13 = InstanceType; // Error type U14 = InstanceType; // Error @@ -47,7 +47,7 @@ type T23 = ArgumentType<(...args: string[]) => number>; // string type T24 = ArgumentType<(x: string, y: string) => number>; // Error type T25 = ArgumentType; // Error type T26 = ArgumentType; // any -type T27 = ArgumentType; // any +type T27 = ArgumentType; // never type X1 = T extends { x: infer X, y: infer Y } ? [X, Y] : any; diff --git a/tests/baselines/reference/inferTypes1.symbols b/tests/baselines/reference/inferTypes1.symbols index 5d2b7949676..784482e72c9 100644 --- a/tests/baselines/reference/inferTypes1.symbols +++ b/tests/baselines/reference/inferTypes1.symbols @@ -106,7 +106,7 @@ type T15 = ReturnType; // any >T15 : Symbol(T15, Decl(inferTypes1.ts, 27, 33)) >ReturnType : Symbol(ReturnType, Decl(lib.d.ts, --, --)) -type T16 = ReturnType; // any +type T16 = ReturnType; // never >T16 : Symbol(T16, Decl(inferTypes1.ts, 28, 27)) >ReturnType : Symbol(ReturnType, Decl(lib.d.ts, --, --)) @@ -128,7 +128,7 @@ type U11 = InstanceType; // any >U11 : Symbol(U11, Decl(inferTypes1.ts, 33, 34)) >InstanceType : Symbol(InstanceType, Decl(lib.d.ts, --, --)) -type U12 = InstanceType; // any +type U12 = InstanceType; // never >U12 : Symbol(U12, Decl(inferTypes1.ts, 34, 29)) >InstanceType : Symbol(InstanceType, Decl(lib.d.ts, --, --)) @@ -184,7 +184,7 @@ type T26 = ArgumentType; // any >T26 : Symbol(T26, Decl(inferTypes1.ts, 46, 34)) >ArgumentType : Symbol(ArgumentType, Decl(inferTypes1.ts, 37, 34)) -type T27 = ArgumentType; // any +type T27 = ArgumentType; // never >T27 : Symbol(T27, Decl(inferTypes1.ts, 47, 29)) >ArgumentType : Symbol(ArgumentType, Decl(inferTypes1.ts, 37, 34)) diff --git a/tests/baselines/reference/inferTypes1.types b/tests/baselines/reference/inferTypes1.types index 5d14cdf5286..4ca78f65081 100644 --- a/tests/baselines/reference/inferTypes1.types +++ b/tests/baselines/reference/inferTypes1.types @@ -110,8 +110,8 @@ type T15 = ReturnType; // any >T15 : any >ReturnType : ReturnType -type T16 = ReturnType; // any ->T16 : any +type T16 = ReturnType; // never +>T16 : never >ReturnType : ReturnType type T17 = ReturnType; // Error @@ -132,8 +132,8 @@ type U11 = InstanceType; // any >U11 : any >InstanceType : InstanceType -type U12 = InstanceType; // any ->U12 : any +type U12 = InstanceType; // never +>U12 : never >InstanceType : InstanceType type U13 = InstanceType; // Error @@ -188,8 +188,8 @@ type T26 = ArgumentType; // any >T26 : any >ArgumentType : ArgumentType -type T27 = ArgumentType; // any ->T27 : any +type T27 = ArgumentType; // never +>T27 : never >ArgumentType : ArgumentType type X1 = T extends { x: infer X, y: infer Y } ? [X, Y] : any;