mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-11 06:02:53 -05:00
Accept new baselines
This commit is contained in:
19
tests/baselines/reference/genericRestTypes.js
Normal file
19
tests/baselines/reference/genericRestTypes.js
Normal file
@@ -0,0 +1,19 @@
|
||||
//// [genericRestTypes.ts]
|
||||
// Repro from #25793
|
||||
|
||||
// Gets the parameters of a function type as a tuple
|
||||
type Parameters<T extends (...args: any[]) => any> = T extends (...args: infer U) => any ? U : never;
|
||||
// Removes the first element from a tuple
|
||||
type Tail<T extends any[]> = ((...args: T) => any) extends ((head: any, ...tail: infer U) => any) ? U : never;
|
||||
|
||||
type MyFunctionType = (foo: number, bar: string) => boolean;
|
||||
|
||||
type Explicit = (...args: Tail<Parameters<MyFunctionType>>) => ReturnType<MyFunctionType>; // (bar: string) => boolean
|
||||
|
||||
type Bind1<T extends (head: any, ...tail: any[]) => any> = (...args: Tail<Parameters<T>>) => ReturnType<T>;
|
||||
type Generic = Bind1<MyFunctionType>; // (bar: string) => boolean
|
||||
|
||||
|
||||
//// [genericRestTypes.js]
|
||||
"use strict";
|
||||
// Repro from #25793
|
||||
55
tests/baselines/reference/genericRestTypes.symbols
Normal file
55
tests/baselines/reference/genericRestTypes.symbols
Normal file
@@ -0,0 +1,55 @@
|
||||
=== tests/cases/compiler/genericRestTypes.ts ===
|
||||
// Repro from #25793
|
||||
|
||||
// Gets the parameters of a function type as a tuple
|
||||
type Parameters<T extends (...args: any[]) => any> = T extends (...args: infer U) => any ? U : never;
|
||||
>Parameters : Symbol(Parameters, Decl(genericRestTypes.ts, 0, 0))
|
||||
>T : Symbol(T, Decl(genericRestTypes.ts, 3, 16))
|
||||
>args : Symbol(args, Decl(genericRestTypes.ts, 3, 27))
|
||||
>T : Symbol(T, Decl(genericRestTypes.ts, 3, 16))
|
||||
>args : Symbol(args, Decl(genericRestTypes.ts, 3, 64))
|
||||
>U : Symbol(U, Decl(genericRestTypes.ts, 3, 78))
|
||||
>U : Symbol(U, Decl(genericRestTypes.ts, 3, 78))
|
||||
|
||||
// Removes the first element from a tuple
|
||||
type Tail<T extends any[]> = ((...args: T) => any) extends ((head: any, ...tail: infer U) => any) ? U : never;
|
||||
>Tail : Symbol(Tail, Decl(genericRestTypes.ts, 3, 101))
|
||||
>T : Symbol(T, Decl(genericRestTypes.ts, 5, 10))
|
||||
>args : Symbol(args, Decl(genericRestTypes.ts, 5, 31))
|
||||
>T : Symbol(T, Decl(genericRestTypes.ts, 5, 10))
|
||||
>head : Symbol(head, Decl(genericRestTypes.ts, 5, 61))
|
||||
>tail : Symbol(tail, Decl(genericRestTypes.ts, 5, 71))
|
||||
>U : Symbol(U, Decl(genericRestTypes.ts, 5, 86))
|
||||
>U : Symbol(U, Decl(genericRestTypes.ts, 5, 86))
|
||||
|
||||
type MyFunctionType = (foo: number, bar: string) => boolean;
|
||||
>MyFunctionType : Symbol(MyFunctionType, Decl(genericRestTypes.ts, 5, 110))
|
||||
>foo : Symbol(foo, Decl(genericRestTypes.ts, 7, 23))
|
||||
>bar : Symbol(bar, Decl(genericRestTypes.ts, 7, 35))
|
||||
|
||||
type Explicit = (...args: Tail<Parameters<MyFunctionType>>) => ReturnType<MyFunctionType>; // (bar: string) => boolean
|
||||
>Explicit : Symbol(Explicit, Decl(genericRestTypes.ts, 7, 60))
|
||||
>args : Symbol(args, Decl(genericRestTypes.ts, 9, 17))
|
||||
>Tail : Symbol(Tail, Decl(genericRestTypes.ts, 3, 101))
|
||||
>Parameters : Symbol(Parameters, Decl(genericRestTypes.ts, 0, 0))
|
||||
>MyFunctionType : Symbol(MyFunctionType, Decl(genericRestTypes.ts, 5, 110))
|
||||
>ReturnType : Symbol(ReturnType, Decl(lib.es5.d.ts, --, --))
|
||||
>MyFunctionType : Symbol(MyFunctionType, Decl(genericRestTypes.ts, 5, 110))
|
||||
|
||||
type Bind1<T extends (head: any, ...tail: any[]) => any> = (...args: Tail<Parameters<T>>) => ReturnType<T>;
|
||||
>Bind1 : Symbol(Bind1, Decl(genericRestTypes.ts, 9, 90))
|
||||
>T : Symbol(T, Decl(genericRestTypes.ts, 11, 11))
|
||||
>head : Symbol(head, Decl(genericRestTypes.ts, 11, 22))
|
||||
>tail : Symbol(tail, Decl(genericRestTypes.ts, 11, 32))
|
||||
>args : Symbol(args, Decl(genericRestTypes.ts, 11, 60))
|
||||
>Tail : Symbol(Tail, Decl(genericRestTypes.ts, 3, 101))
|
||||
>Parameters : Symbol(Parameters, Decl(genericRestTypes.ts, 0, 0))
|
||||
>T : Symbol(T, Decl(genericRestTypes.ts, 11, 11))
|
||||
>ReturnType : Symbol(ReturnType, Decl(lib.es5.d.ts, --, --))
|
||||
>T : Symbol(T, Decl(genericRestTypes.ts, 11, 11))
|
||||
|
||||
type Generic = Bind1<MyFunctionType>; // (bar: string) => boolean
|
||||
>Generic : Symbol(Generic, Decl(genericRestTypes.ts, 11, 107))
|
||||
>Bind1 : Symbol(Bind1, Decl(genericRestTypes.ts, 9, 90))
|
||||
>MyFunctionType : Symbol(MyFunctionType, Decl(genericRestTypes.ts, 5, 110))
|
||||
|
||||
55
tests/baselines/reference/genericRestTypes.types
Normal file
55
tests/baselines/reference/genericRestTypes.types
Normal file
@@ -0,0 +1,55 @@
|
||||
=== tests/cases/compiler/genericRestTypes.ts ===
|
||||
// Repro from #25793
|
||||
|
||||
// Gets the parameters of a function type as a tuple
|
||||
type Parameters<T extends (...args: any[]) => any> = T extends (...args: infer U) => any ? U : never;
|
||||
>Parameters : Parameters<T>
|
||||
>T : T
|
||||
>args : any[]
|
||||
>T : T
|
||||
>args : U
|
||||
>U : U
|
||||
>U : U
|
||||
|
||||
// Removes the first element from a tuple
|
||||
type Tail<T extends any[]> = ((...args: T) => any) extends ((head: any, ...tail: infer U) => any) ? U : never;
|
||||
>Tail : Tail<T>
|
||||
>T : T
|
||||
>args : T
|
||||
>T : T
|
||||
>head : any
|
||||
>tail : U
|
||||
>U : U
|
||||
>U : U
|
||||
|
||||
type MyFunctionType = (foo: number, bar: string) => boolean;
|
||||
>MyFunctionType : MyFunctionType
|
||||
>foo : number
|
||||
>bar : string
|
||||
|
||||
type Explicit = (...args: Tail<Parameters<MyFunctionType>>) => ReturnType<MyFunctionType>; // (bar: string) => boolean
|
||||
>Explicit : Explicit
|
||||
>args : [string]
|
||||
>Tail : Tail<T>
|
||||
>Parameters : Parameters<T>
|
||||
>MyFunctionType : MyFunctionType
|
||||
>ReturnType : ReturnType<T>
|
||||
>MyFunctionType : MyFunctionType
|
||||
|
||||
type Bind1<T extends (head: any, ...tail: any[]) => any> = (...args: Tail<Parameters<T>>) => ReturnType<T>;
|
||||
>Bind1 : Bind1<T>
|
||||
>T : T
|
||||
>head : any
|
||||
>tail : any[]
|
||||
>args : Tail<Parameters<T>>
|
||||
>Tail : Tail<T>
|
||||
>Parameters : Parameters<T>
|
||||
>T : T
|
||||
>ReturnType : ReturnType<T>
|
||||
>T : T
|
||||
|
||||
type Generic = Bind1<MyFunctionType>; // (bar: string) => boolean
|
||||
>Generic : Bind1<MyFunctionType>
|
||||
>Bind1 : Bind1<T>
|
||||
>MyFunctionType : MyFunctionType
|
||||
|
||||
Reference in New Issue
Block a user