11=== tests/cases/compiler/conditionalTypesSimplifyWhenTrivial.ts ===
22const fn1 = <Params>(
3- >fn1 : <Params>(params: Pick<Params, keyof Params>) => Params
4- ><Params>( params: Pick<Params, Exclude<keyof Params, never>>,): Params => params : <Params>(params: Pick<Params, keyof Params>) => Params
3+ >fn1 : <Params>(params: Pick<Params, Exclude< keyof Params, never> >) => Params
4+ ><Params>( params: Pick<Params, Exclude<keyof Params, never>>,): Params => params : <Params>(params: Pick<Params, Exclude< keyof Params, never> >) => Params
55
66 params: Pick<Params, Exclude<keyof Params, never>>,
7- >params : Pick<Params, keyof Params>
7+ >params : Pick<Params, Exclude< keyof Params, never> >
88
99): Params => params;
10- >params : Pick<Params, keyof Params>
10+ >params : Pick<Params, Exclude< keyof Params, never> >
1111
1212function fn2<T>(x: Exclude<T, never>) {
13- >fn2 : <T>(x: T ) => void
14- >x : T
13+ >fn2 : <T>(x: Exclude<T, never> ) => void
14+ >x : Exclude<T, never>
1515
1616 var y: T = x;
1717>y : T
18- >x : T
18+ >x : Exclude<T, never>
1919
2020 x = y;
2121>x = y : T
22- >x : T
22+ >x : Exclude<T, never>
2323>y : T
2424}
2525
2626const fn3 = <Params>(
27- >fn3 : <Params>(params: Pick<Params, keyof Params>) => Params
28- ><Params>( params: Pick<Params, Extract<keyof Params, keyof Params>>,): Params => params : <Params>(params: Pick<Params, keyof Params>) => Params
27+ >fn3 : <Params>(params: Pick<Params, Extract< keyof Params, keyof Params> >) => Params
28+ ><Params>( params: Pick<Params, Extract<keyof Params, keyof Params>>,): Params => params : <Params>(params: Pick<Params, Extract< keyof Params, keyof Params> >) => Params
2929
3030 params: Pick<Params, Extract<keyof Params, keyof Params>>,
31- >params : Pick<Params, keyof Params>
31+ >params : Pick<Params, Extract< keyof Params, keyof Params> >
3232
3333): Params => params;
34- >params : Pick<Params, keyof Params>
34+ >params : Pick<Params, Extract< keyof Params, keyof Params> >
3535
3636function fn4<T>(x: Extract<T, T>) {
37- >fn4 : <T>(x: T ) => void
38- >x : T
37+ >fn4 : <T>(x: Extract<T, T> ) => void
38+ >x : Extract<T, T>
3939
4040 var y: T = x;
4141>y : T
42- >x : T
42+ >x : Extract<T, T>
4343
4444 x = y;
4545>x = y : T
46- >x : T
46+ >x : Extract<T, T>
4747>y : T
4848}
4949
@@ -57,101 +57,101 @@ type ExcludeWithDefault<T, U, D = never> = T extends U ? D : T;
5757>ExcludeWithDefault : ExcludeWithDefault<T, U, D>
5858
5959const fn5 = <Params>(
60- >fn5 : <Params>(params: Pick<Params, keyof Params>) => Params
61- ><Params>( params: Pick<Params, ExcludeWithDefault<keyof Params, never>>,): Params => params : <Params>(params: Pick<Params, keyof Params>) => Params
60+ >fn5 : <Params>(params: Pick<Params, ExcludeWithDefault< keyof Params, never, never> >) => Params
61+ ><Params>( params: Pick<Params, ExcludeWithDefault<keyof Params, never>>,): Params => params : <Params>(params: Pick<Params, ExcludeWithDefault< keyof Params, never, never> >) => Params
6262
6363 params: Pick<Params, ExcludeWithDefault<keyof Params, never>>,
64- >params : Pick<Params, keyof Params>
64+ >params : Pick<Params, ExcludeWithDefault< keyof Params, never, never> >
6565
6666): Params => params;
67- >params : Pick<Params, keyof Params>
67+ >params : Pick<Params, ExcludeWithDefault< keyof Params, never, never> >
6868
6969function fn6<T>(x: ExcludeWithDefault<T, never>) {
70- >fn6 : <T>(x: T ) => void
71- >x : T
70+ >fn6 : <T>(x: ExcludeWithDefault<T, never, never> ) => void
71+ >x : ExcludeWithDefault<T, never, never>
7272
7373 var y: T = x;
7474>y : T
75- >x : T
75+ >x : ExcludeWithDefault<T, never, never>
7676
7777 x = y;
7878>x = y : T
79- >x : T
79+ >x : ExcludeWithDefault<T, never, never>
8080>y : T
8181}
8282
8383const fn7 = <Params>(
84- >fn7 : <Params>(params: Pick<Params, keyof Params>) => Params
85- ><Params>( params: Pick<Params, ExtractWithDefault<keyof Params, keyof Params>>,): Params => params : <Params>(params: Pick<Params, keyof Params>) => Params
84+ >fn7 : <Params>(params: Pick<Params, ExtractWithDefault< keyof Params, keyof Params, never> >) => Params
85+ ><Params>( params: Pick<Params, ExtractWithDefault<keyof Params, keyof Params>>,): Params => params : <Params>(params: Pick<Params, ExtractWithDefault< keyof Params, keyof Params, never> >) => Params
8686
8787 params: Pick<Params, ExtractWithDefault<keyof Params, keyof Params>>,
88- >params : Pick<Params, keyof Params>
88+ >params : Pick<Params, ExtractWithDefault< keyof Params, keyof Params, never> >
8989
9090): Params => params;
91- >params : Pick<Params, keyof Params>
91+ >params : Pick<Params, ExtractWithDefault< keyof Params, keyof Params, never> >
9292
9393function fn8<T>(x: ExtractWithDefault<T, T>) {
94- >fn8 : <T>(x: T ) => void
95- >x : T
94+ >fn8 : <T>(x: ExtractWithDefault<T, T, never> ) => void
95+ >x : ExtractWithDefault<T, T, never>
9696
9797 var y: T = x;
9898>y : T
99- >x : T
99+ >x : ExtractWithDefault<T, T, never>
100100
101101 x = y;
102102>x = y : T
103- >x : T
103+ >x : ExtractWithDefault<T, T, never>
104104>y : T
105105}
106106
107107type TemplatedConditional<TCheck, TExtends, TTrue, TFalse> = TCheck extends TExtends ? TTrue : TFalse;
108108>TemplatedConditional : TemplatedConditional<TCheck, TExtends, TTrue, TFalse>
109109
110110const fn9 = <Params>(
111- >fn9 : <Params>(params: Pick<Params, keyof Params>) => Params
112- ><Params>( params: Pick<Params, TemplatedConditional<keyof Params, never, never, keyof Params>>,): Params => params : <Params>(params: Pick<Params, keyof Params>) => Params
111+ >fn9 : <Params>(params: Pick<Params, TemplatedConditional< keyof Params, never, never, keyof Params> >) => Params
112+ ><Params>( params: Pick<Params, TemplatedConditional<keyof Params, never, never, keyof Params>>,): Params => params : <Params>(params: Pick<Params, TemplatedConditional< keyof Params, never, never, keyof Params> >) => Params
113113
114114 params: Pick<Params, TemplatedConditional<keyof Params, never, never, keyof Params>>,
115- >params : Pick<Params, keyof Params>
115+ >params : Pick<Params, TemplatedConditional< keyof Params, never, never, keyof Params> >
116116
117117): Params => params;
118- >params : Pick<Params, keyof Params>
118+ >params : Pick<Params, TemplatedConditional< keyof Params, never, never, keyof Params> >
119119
120120function fn10<T>(x: TemplatedConditional<T, never, never, T>) {
121- >fn10 : <T>(x: T ) => void
122- >x : T
121+ >fn10 : <T>(x: TemplatedConditional<T, never, never, T> ) => void
122+ >x : TemplatedConditional<T, never, never, T>
123123
124124 var y: T = x;
125125>y : T
126- >x : T
126+ >x : TemplatedConditional<T, never, never, T>
127127
128128 x = y;
129129>x = y : T
130- >x : T
130+ >x : TemplatedConditional<T, never, never, T>
131131>y : T
132132}
133133
134134const fn11 = <Params>(
135- >fn11 : <Params>(params: Pick<Params, keyof Params>) => Params
136- ><Params>( params: Pick<Params, TemplatedConditional<keyof Params, keyof Params, keyof Params, never>>,): Params => params : <Params>(params: Pick<Params, keyof Params>) => Params
135+ >fn11 : <Params>(params: Pick<Params, TemplatedConditional< keyof Params, keyof Params, keyof Params, never> >) => Params
136+ ><Params>( params: Pick<Params, TemplatedConditional<keyof Params, keyof Params, keyof Params, never>>,): Params => params : <Params>(params: Pick<Params, TemplatedConditional< keyof Params, keyof Params, keyof Params, never> >) => Params
137137
138138 params: Pick<Params, TemplatedConditional<keyof Params, keyof Params, keyof Params, never>>,
139- >params : Pick<Params, keyof Params>
139+ >params : Pick<Params, TemplatedConditional< keyof Params, keyof Params, keyof Params, never> >
140140
141141): Params => params;
142- >params : Pick<Params, keyof Params>
142+ >params : Pick<Params, TemplatedConditional< keyof Params, keyof Params, keyof Params, never> >
143143
144144function fn12<T>(x: TemplatedConditional<T, T, T, never>) {
145- >fn12 : <T>(x: T ) => void
146- >x : T
145+ >fn12 : <T>(x: TemplatedConditional<T, T, T, never> ) => void
146+ >x : TemplatedConditional<T, T, T, never>
147147
148148 var y: T = x;
149149>y : T
150- >x : T
150+ >x : TemplatedConditional<T, T, T, never>
151151
152152 x = y;
153153>x = y : T
154- >x : T
154+ >x : TemplatedConditional<T, T, T, never>
155155>y : T
156156}
157157
0 commit comments